


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于VxWorks的雙485口管理系統設計
摘要:VxWorks嵌入式操作系統具有高效的實時任務管理與調度、任務的同步與通信、內存管理、I/O管理、時鐘管理等機制。兩個485口在通信速率、工作模式、控制方式上有較大差別且系統死線要求嚴格。詳細介紹了VxWorks下雙485口串行通信系統BSP、驅動程序和應用程序的開發過程。基于VxWorks構建的嵌入式串行通信系統實時性好,效率高,可根據硬件進行優化配置;利用VxWorks的I/O系統將驅動程序作為內核過程,設備作為特殊文件處理,解決了工作方式不同的兩個485口的驅動程序開發和接口統一問題。關鍵詞:通信系統;嵌入式串行通信引言VxWorks是美國WindRiver公司專門為嵌入式微處理器設計的一種高模塊化、高性能的實時多任務操作系統,具有很好的安全性、可靠性及系統靈活性[1-2]。該系統要求兩個485端口波特率分別為460.8kb和614.4kb;工作方式分別為程序查詢式和中斷驅動式;代寫論文握手方式和通信控制方式也完全不具有相對的獨立性和“并發性”,而且各個任務根據不同的“緊迫感”應具有不同的優先級。根據以上多方面的要求和特點,基于優先級搶占式的多任務實時操作系統VxWorks是該系統的首選[3]。本文以研制某型訓練裝備為背景,詳細介紹了基于VxWorks的雙485口通信系統設計方法和過程。1串口通信基本原理串口通信作為最常用的通信方式,用途非常廣泛,驅動易于編寫,被絕大多數操作系統默認支持。其基本功能是實現和串行設備間的編碼轉換發送數據時,字節數據經CPU通過通用異步接收發送器(簡稱UART)轉換為串行位,從串行端口發送出去;接收數據時,串行位通過UART被轉換為字節數據,并放入緩沖區,由CPU讀取。通過對UART的內部寄存器的控制實現字節數據和位數據的轉換和通信。通信時,UART按初始化設置,把起始位、校驗位和停止位加到來自CPU的8位數據上,然后按設置的波特率把這個二進制位串發送到串行通信線上,如圖1所示;同樣,UART能自動從通信線上接收串行數據,并取出有效的數據位,然后轉換成數據字符存入接收數據寄存器。2串行通信軟件設計該軟件以WindRiver的TornadoII集成開發環境為平臺進行開發。包括BSP開發、驅動程序開發、應用程序開發等步驟。2.1BSP開發BSP(BoardSupportPacket,板級支持包)是介于底層硬件和上層軟件之間的底層軟件開發包。它來源于嵌入式操作系統與硬件無關的設計思想[2,4]。操作系統被設計運行在虛擬的硬件平臺上,對于具體的硬件平臺,與硬件相關的代碼都被封裝在BSP中。它主要功能為屏蔽硬件,提供操作系統的驅動及硬件驅動。它的主要功能包括:系統引導時,初始化目標機硬件;提供目標系統上的驅動程序,如定時器、串口等[2,6]。開發BSP,主要以目標板CPU的BSP文件為模板,建立工程并修改相關源文件。BSP文件在vx-works/target/config/all和vxworks/target/config/bsp-name文件夾里。其中,all文件夾里的文件是所有BSP的通用文件,bspname文件夾的文件是用戶自己定制的BSP文件。該系統采用PentiumCPU,因此以vxworks/target/config/pcPentium文件夾里的文件為模板進行修改,開發過程如下。系統配置在config/all目錄包含的文件中完成。需要配置的頭文件有target/config/all/configAll.h和arget/config/pcPentium/config.h;需要配置的模塊文件有target/config/all/usrconfig.c和target/src/config目錄下的初始化模塊。配置頭文件主要利用定義(#define)和去除定義(#undef)實現。ConfigAll.h是全局配置頭文件,包括所有目標系統公用的配置參數默認定義,一般不修改此文件,而在Config.h中重新定義。以配置引導程序為例:該系統開發過程中使用串口(此串口為目標機開發板上的串口)調試VxWorks映像,端口1作為WDB代理通信通道,不設目標機控制臺通#defineN-UART-CHANNELS2這樣,宿主機和目標機通過一根串口線連接,VxWorks映像文件從目標機軟盤上加載,宿主機通過串口來調試目標機上的VxWorks。在config.h中修改如下內容,同時在Makefile里配置ROM起始地址(ROM-BASE-ADRS)、代碼段入口(ROM-TEXT-ADRS)、ROM大小(ROM-SIZE)、VxWorks映像加載地址(RAM-LOW-ADRS)和BootROM加載地址(RAM-HIGH-ADRS)。該系統對模塊文件usrconfig.c和target/src/config目錄下的初始化模塊無需作修改[2]。2.2串口驅動程序開發VxWorks操作系統有兩種方式實現驅動。1)把設備驅動程序作為獨立任務實現,直接在頂層任務中實現硬件操作,完成特有專用的驅動程序。2)VxWorks的I/O系統將設備程序作為內核過程實現。這種方式便于實現I/O子系統的層次模型,便于文件系統一起把設備作為特殊文件處理,提供統一的管理、統一的界面和統一的使用方法,并把設備、文件及網絡通信組織成為一致的更高層次的抽象,為用戶提供統一的系統服務和用戶接口。采用這種驅動方式,向上將TTY設備安裝到標準的I/O系統中,上層應用通過標準的I/O接口完成對硬件設備的操作,向下提供對實際硬件設備的底層設備驅動程序[7-8。串口1、串口2均采用82C52芯片作為UART。根據上位機的工作方式,端口1采用硬件握手中斷驅動方式,有5根信號線:2根數據傳輸線(TXD、RXD),2根握手線(CTS、RTS)和1根地線。端口2采用軟件握手查詢工作方式,有3根信號線:2根數據傳輸線(TXD、RXD)和1根地線。各端口的默認字長均為8位、停止位2位、奇偶校驗位1位、端口1默認波特率為614.4kbps,端口2默認波特率為460.8kbps。首先構造設備描述符結構體,設備描述符保存了與設備相關聯的數據,它必須以設備頭(DEV-HDR)結構為開頭。由于2個端口的工作方式完全不同,且無法預測數據傳輸的先后順序和傳輸時機,2個端口的數據接收函數必須分開編寫,其中uartRecQuery()函數用于端口2的查詢工作方式;uartRecData()函數用于端口1的中斷握手方式,其優先級高于uartRecQuery()函數。但數據發送函數可以合并,因為對于單處理器而言,是不可能實現真正的多任務并行處理的,即使編寫成兩個并行任務,也是在處理器的控制下,按時間片輪轉執行的。這樣不僅不能提高執行效率,反而會因為任務上下文切換造成一定的資源浪費,影響系統實時性。這種情況,更適合采用面向過程的方法對程序進行設計和優化。下面對其進行說明:調用后,其首先檢測輸入參數是否合法,而后根據端口號選擇工作方式(中斷或查詢),作相應操作,開始發送數據,每發送一個字節檢測并等待TBRE(發送緩沖寄存器空)信號變為有效,再發送下一字節,數據全部發送完畢后函數返回。其工作流程如驅動程序開發完成后,在usrConfig.c文件的usrRoot()函數里,調用API函數iosDrvInstall()對以上驅動程序分別進行安裝,再初始化設備描述符,并用iosDevAdd()將設備增加到設備列表中,最后將設備置為中斷模式。以上操作完成后即可用標準I/O函數操作兩個不同的串口設備2.3串口通信應用程序設計數據通信按幀進行,幀分為命令幀和應答幀。幀格式為命令幀:命令碼長度參數串異或應答幀:應答碼長度參數串異或
對于多字節參數,按高字節在前,低字節在后的次序發送。數據采用二進制16位有符號整數數據格式。其中,最高位為符號位,數據為二進制格式。數據傳輸時,上位機首先發送一個命令幀,包含數據包個數、最后一個數據包的字節數,除最后一個數據包外,每包大小為16kB。模擬器收到后,回復應答幀并將收到的數據包個數、最后一個數據包的字節數一同發回校驗,對幀長度校驗無誤后開始發送數據。由于傳輸數據量較大,一般校驗方法進行內容誤判率高,不能糾錯,大多數情況下需要重新發送,非常費時。循環冗余校驗法(CRC)由于實現簡單,檢錯能力強,并能糾錯,可以較好地解決這個問題。該系統采用CRC16進行校驗[9]。3結論串行通信以其網絡連接方便、抗干擾性能好、傳輸距離遠等優點,在嵌入式系統得到廣泛
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機電工程市場計劃與執行試題及答案
- 網絡工程師職業生涯發展試題及答案
- 如何建立有效的國家治理體系試題及答案
- 2024年血液凈化耗材資金申請報告代可行性研究報告
- 描述2025年西方政治制度的有效性試題及答案
- 西方國家的性別平等與政治試題及答案
- 迎接變革的2025年軟件設計師考試及試題及答案
- 項目管理中的前后期分析對比試題及答案
- 深入研究西方國家的資源政策與規則試題及答案
- 機電工程課程考點分類與試題及答案
- 【課件】2025年安全生產月主題宣講(一)
- 燕舞集團招聘試題及答案
- 2024園藝師考試栽培方法試題及答案
- 工程結算審核實務:重點難點解析及解決方案
- 小學數學課堂互動教學模式探究
- 外架承包合同完整版
- CHINET2024年全年細菌耐藥監測結果
- 2025年河北建投能源投資股份有限公司招聘筆試參考題庫含答案解析
- 住房城鄉建設行政處罰自由裁量基準(2023版)城鄉規劃建設類
- 班組創新管理之安全管理
- 2025年全國導游資格考試大綱科目一至四
評論
0/150
提交評論