張騰
摘 要 本文介紹了多任務操作系統如何進行嵌入式的應用軟件設計,給出了進行多任務操作的具體方法,并對該方法如何在與熱敏打印相關的軟件進行應用,進行了介紹,通過多任務操作,嵌入式軟件提高了應用的實時性,增強了軟件的可移植性,提升了軟件的開發效率,縮短了軟件的開發周期。
關鍵詞 嵌入式操作系統 熱敏打印 RTOS
中圖分類號:TP316.2 文獻標識碼:A
1嵌入式操作系統的多任務操作
嵌入式操作系統 C/OS的應用,可以解決熱敏打印的設計之中,CPU如何進行多任務處理,解決加熱耗時的問題。完善 C/OS系統可以提升開發效率,增強軟件的實時性。實時的多任務操作系統中,很大一部分為嵌入式操作系統,該種系統與傳統定義的操作系統有差異。常見的打印機數據操作系統都是多任務的操作系統,通過多任務的方法可以方便軟件的設計,同時由于嵌入式系統也具備操作軟件的功能,因此在軟件設計的時候就可以在此基礎之上進行多任務程序的應用。嵌入式操作系統可以對嵌入式系統中的全部硬件和軟件資源進行調度分配,同時還可以進行并發工作,在滿足系統特性的基礎上,通過拆裝某些模塊可以提升系統的性能,與常見的操作系統相比較,嵌入式系統具有如下不同點。
第一,嵌入式操作系統的移植性強,體積小,占用硬件資源少。第二,系統具有實時性的特點,可以進行卸載和裝載。第三,系統可以固化代碼,因而具有很強的穩定性。雖然當前已經出現了個人開發的嵌入式操作系統,例如JEAN J. LABROSSE開發的 C/OS,但是當前大多數嵌入式系統都是商業內核的,常見的有PSOSystem、VxWorks和Nucleu等。本文所選用的嵌入式系統是 C/OS,因為該系統是完全公開的免費內核,該系統的設計人員可以在應用該系統的過程中按照自己的需求對該內核的內容進行擴展或壓縮,實現不同應用軟件的功能需求。 C/OS支持多功能的是實時內核,可以進行多任務操作,并且每個任務都有單獨的棧。該系統的服務內容也比較多,例如內存申請和釋放、消息列表、郵箱等,并且支持255層的嵌套中斷。由于該系統功能強大,代碼簡潔,近年來已經在嵌入式操作系統當中得到了廣泛應用。
2嵌入式操作系統佮進行軟件設計
運用嵌入式操作系統進行系統軟件設計,根據具體的操作要求設置操作步驟,可以提升軟件的實時性,強化軟件的可移植性,減少軟件開發時間。在進行嵌入式操作系統的設計的時候,需要明確軟件設計的一般流程,由于應用軟件在硬件之上,因此一致性比較差。在引入了嵌入式操作系統之后,由于應用軟件的任務不能建立在硬件之上,因此應用都是建立在嵌入式操作系統之上。嵌入式操作系統在應用軟件之中是一個指揮者的角色,同時該系統還負責和硬件進行連通,幫助各系統的運轉,盡管CPU是按照順序進行嵌入式操作的,但設計軟件的時候還是需要劃分任務,根據軟件設計的需求將操作系統初始化。
以 C/OS操作系統為基礎,在該系統上設計應用軟件首先需要根據系統的功能對任務進行劃分,確定具體任務的個數,明確各任務的優先級別,選擇信號和功能的時候需要注意任務之間的通訊。同時,需要根據程序的要求確認各種任務所需要的堆棧的容量,關注代碼存儲機和數據存儲機的容量,在應用該系統,選擇該系統的操作模式的時候,還需要選擇儲存模式。最后,在軟件設計完成之后,需要根據任務程序設計代碼服務和中斷服務。下面介紹如何利用該系統設計熱敏打印機的應用軟件。
3熱敏打印機的應用軟件設計
3.1熱敏打印機的功能
熱敏打印機屬于特殊的打印機,由于我國的生產工藝落后,微型打印機生產廠商會選擇國外進口熱敏打印機的打印頭,配上自己設計的單片機控制板組成熱敏打印機。打印機的軟件結構通常都是多任務的結構,通過各種不同方法可以設置不同的任務階段,設置不同的程序,由于 C/OS系統是一種具備各種管理功能的系統,因此在程序設計的過程中可以直接在系統當中進行挑選簡化。本文所要介紹的熱敏打印機實現應用步驟的方法就是 C/OS系統的具體應用過程,在該系統中體現了嵌入式操作系統的優越性。在熱敏打印機實現功能的操作中,首先從上位機接受信息,對數據進行處理,控制打印機的打印頭進行打印。打印機的處理過程中,CPU主要有如下幾個任務。
第一,接收上位機傳輸的信息,并存儲信息至緩沖區域。第二,將緩沖的信息進行讀取并處理,如果信息是命令則進行操作,如果信息是字符,則轉化為點陣存儲在緩沖區。第三,將打印緩沖區的數據傳輸到打印頭,控制打印機走紙,檢查打印機的狀態,預熱打印機。上述三個任務只是基本任務,除此之外上一級還需要根據不同任務,選擇其他功能,例如檢測打印頭是否過熱、打印壓桿是否下壓、檢查打印機是否缺紙。
3.2熱敏打印的軟件功能
熱敏打印機軟件所要實現的功能可以粗略的概括為數據分析和打印控制,根據打印機的結構特點和作業流程,大致切換步驟主要有數據切換和信息收集兩個過程。完成打印功能分析之后,需要設計軟件功能,分別設計各個任務的流程。熱敏打印機需要實現數據接收、數據處理和數據打印三個步驟。按照基礎設計方法,需要將各流程按照順序連接起來,但熱敏打印機卻不適合這樣操作。由于熱敏打印機需要進行加熱,在加熱的過程中,需要等待加熱完成,因此會有時間間隔。普通的字符點行有24個,每個都需要一定時間,這樣就拉長了打印速度。同時熱敏打印機對于實時性的要求過高,如果系統運轉緩慢則會導致調度不合理,導致打印過程出現錯亂。因此簡單的進行程序設計無法滿足應用需求。
3.3 C/OS系統的設計方法
為了提升打印的效率,可以將打印流程拆分成幾個不同的任務,目的是為了適應多任務的環境,讓處理器在多任務的情況下進行調配,該設計需要設計師的技巧和經驗。程序需要進行不斷切換,運用何種程序需要不斷進行考慮,因此軟件設計過程較復雜,也會導致長期運行不穩定,因此引入 C/OS系統是一種高效的設計方法。
3.4通過 C/OS系統設計打印機軟件
由于打印機軟件是一種多任務的軟件,因此需要應用多任務實時運行的方法設計程序。 C/OS系統提供了各種多任務管理功能,依靠該系統進行基礎設計可以滿足多任務的需要。如果把創建的多任務大致分為數據處理和打印,則根據打印機軟件的任務和打印流程,需要在如下任務之間進行切換。
第一,從數據處理流程進入到打印流程,在該種模式下有兩種任務,首先在打印區緩沖完一個字符之后,需要啟動打印程序,從數據處理流程進入到打印流程,第二,在數據處理的加熱過程中,如果響應停止,則需要及時終止打印流程,數據處理流程和打印流程可進行數據緩沖控制。
第二,切換到數據處理流程,該任務情況分成兩種任務,首先,在打印機進行加熱的過程中,需要啟動定時裝置,利用加熱的空閑時間處理數據,當加熱時間完成之后,從新進入到打印流程。其次,如果打印的緩沖還沒有滿足一個字符的最低要求,可以不進行打印機的加熱,還是進行數據處理,從打印流程進入數據處理流程,進行數據的接受和處理。打印機處于閑置狀態的時候,程序需要等待上位機的通知。同時,系統如果需要從上位機取得數據,則還需要一個中斷流程,便于進行后續操作。如果外部突發緊急情況,也需要中斷流程。
總之,如下三個任務是必須進行的。任務一,處理打印產生的緩沖數據,對上位機傳來的任務進行解讀。任務二,將緩沖區的數據傳輸到熱敏打印頭,并對電機進行控制,方便打印頭隨時處理數據。任務三,如果發生了異常處理任務,例如打印頭過熱,則需要及時運行中斷任務。
在任務運轉的過程中,任務的優先級別是不同的,第三個任務最優先,如果出現了異常情況,則需要將任務中斷。通常,任務三一直處于等待狀態。任務二比任務一有難度,如果打印緩沖區有一個字符,則需要優先執行任務二,在執行任務二進行打印機加熱的過程中,需要啟動定時器,中斷任務二,此時任務二處于等待狀態。如果任務二中斷,則 C/OS系統會調整任務一進入運轉,進行數據的處理和接受。如果加熱過程中,服務器收到信號,表明任務二可以進行運行,則此時系統運行任務二。如果任務二運行,則是因為打印緩沖區的數據不滿一個字符,如果任務一運行,則是沒有異常發生,同時任務二在等待,此時任務一處理數據。
需要關注的是,如果任務二處于運行狀態,則如果任務二中斷,就意味著任務二和任務三同時中斷,中斷任務二所產生的一系列效果,意味著控制電機中斷,同時控制加熱時間。加熱時間由于是基礎加熱時間,一個一定時間中斷,另一個進行補償?;鶞始訜釙r間是加熱的最短時間,大約三微秒,在 C/OS系統進行任務切換中完成,之后執行其他任務?;鶞始訜嵬瓿芍?,由于打印頭的情況不同,會接著進行補償加熱,補償加熱的時間各有不同,因任務而異。通常補償加熱之后會進行下一點的加熱,過程和程序都和之前的過程相同。加熱頭的加熱可以設置成一個單獨的任務,如果任務二執行完畢,則可以切換到其他任務,由于加熱過程比較復雜,需要進行經常切換,雖然浪費時間,但是并不加重系統負擔,由于兩個任務和過程聯系密切,因此將其加入任務二較為合理。
進行完各種程序的中斷編程之后,可以建立打印作業工程的程序。第一,將出程序相關的硬件初始化,對 C/OS系統進行重新定義,接著需要對各種程序進行激活,最后啟動多任務操作。需要關注的是,由于嵌入式系統控制軟件的要求較高,在工程設計過程中需要根據硬件來對軟件進行適當調整,如果嵌入式操作系統設計不合理會導致系統出現一定損耗,因此在設計程序的過程中就應當考慮到系統損耗的問題。在程序設計的過程中,需要利用 C/OS系統對程序實現控制,除了中斷堆棧的任務之外,任何任務都有自己的堆棧,如果任務發生了中斷,則各個堆棧都會保存各自的值。由于參數的傳遞也會產生布局堆棧,因此在進行設計的過程中需要根據任務情況,在滿足實際需求之后,適當的擴大堆棧。如果資源比較緊張,則在調試的過程中,就應當嘗試縮小堆棧的容量。同時考慮到熱敏打印機的字庫因素,適合選用大存儲的方法。
4結論
嵌入式操作系統的基礎是計算機技術,通過系統之中應用軟件的設計,可以對系統的功能和體積進行編排。由于 C/OS系統具有可靠、成本低、體積小和功耗低的特點,因此經常被熱敏電機所選用。嵌入式操作系統 C/OS的引入,可以解決熱敏打印機控制軟件設計當中,CPU打印頭加熱出現空閑的情況,提升系統的實用性能。由于使用了 C/OS系統之后,可以提供給用戶完善的管理功能,同時可以節省軟件開發時間,提升軟件開發的效果,強化軟件的可用性。同時為了實現軟件的結構化,就需要提升系統的可移植性和可讀性。
參考文獻
[1] 屈鵬.基于ARM和Linux的嵌入式智能家居網絡視頻監控[D].天津:天津理工大學,2017.
[2] 張霖澤.基于嵌入式系統的視頻編解碼與傳輸技術研究[D].南京:南京理工大學,2017.
[3] 李東方.面向嵌入式系統的PUF輔助安全研究[D].武漢:華中科技大學,2015.