


下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)
摘要:VxWorks嵌入式操作系統(tǒng)具有高效的實(shí)時(shí)任務(wù)管理與調(diào)度、任務(wù)的同步與通信、內(nèi)存管理、I/O管理、時(shí)鐘管理等機(jī)制。兩個(gè)485口在通信速率、工作模式、控制方式上有較大差別且系統(tǒng)死線要求嚴(yán)格。詳細(xì)介紹了VxWorks下雙485口串行通信系統(tǒng)BSP、驅(qū)動(dòng)程序和應(yīng)用程序的開發(fā)過(guò)程。基于VxWorks構(gòu)建的嵌入式串行通信系統(tǒng)實(shí)時(shí)性好,效率高,可根據(jù)硬件進(jìn)行優(yōu)化配置;利用VxWorks的I/O系統(tǒng)將驅(qū)動(dòng)程序作為內(nèi)核過(guò)程,設(shè)備作為特殊文件處理,解決了工作方式不同的兩個(gè)485口的驅(qū)動(dòng)程序開發(fā)和接口統(tǒng)一問(wèn)題。關(guān)鍵詞:通信系統(tǒng);嵌入式串行通信引言VxWorks是美國(guó)WindRiver公司專門為嵌入式微處理器設(shè)計(jì)的一種高模塊化、高性能的實(shí)時(shí)多任務(wù)操作系統(tǒng),具有很好的安全性、可靠性及系統(tǒng)靈活性[1-2]。該系統(tǒng)要求兩個(gè)485端口波特率分別為460.8kb和614.4kb;工作方式分別為程序查詢式和中斷驅(qū)動(dòng)式;代寫論文握手方式和通信控制方式也完全不具有相對(duì)的獨(dú)立性和“并發(fā)性”,而且各個(gè)任務(wù)根據(jù)不同的“緊迫感”應(yīng)具有不同的優(yōu)先級(jí)。根據(jù)以上多方面的要求和特點(diǎn),基于優(yōu)先級(jí)搶占式的多任務(wù)實(shí)時(shí)操作系統(tǒng)VxWorks是該系統(tǒng)的首選[3]。本文以研制某型訓(xùn)練裝備為背景,詳細(xì)介紹了基于VxWorks的雙485口通信系統(tǒng)設(shè)計(jì)方法和過(guò)程。1串口通信基本原理串口通信作為最常用的通信方式,用途非常廣泛,驅(qū)動(dòng)易于編寫,被絕大多數(shù)操作系統(tǒng)默認(rèn)支持。其基本功能是實(shí)現(xiàn)和串行設(shè)備間的編碼轉(zhuǎn)換發(fā)送數(shù)據(jù)時(shí),字節(jié)數(shù)據(jù)經(jīng)CPU通過(guò)通用異步接收發(fā)送器(簡(jiǎn)稱UART)轉(zhuǎn)換為串行位,從串行端口發(fā)送出去;接收數(shù)據(jù)時(shí),串行位通過(guò)UART被轉(zhuǎn)換為字節(jié)數(shù)據(jù),并放入緩沖區(qū),由CPU讀取。通過(guò)對(duì)UART的內(nèi)部寄存器的控制實(shí)現(xiàn)字節(jié)數(shù)據(jù)和位數(shù)據(jù)的轉(zhuǎn)換和通信。通信時(shí),UART按初始化設(shè)置,把起始位、校驗(yàn)位和停止位加到來(lái)自CPU的8位數(shù)據(jù)上,然后按設(shè)置的波特率把這個(gè)二進(jìn)制位串發(fā)送到串行通信線上,如圖1所示;同樣,UART能自動(dòng)從通信線上接收串行數(shù)據(jù),并取出有效的數(shù)據(jù)位,然后轉(zhuǎn)換成數(shù)據(jù)字符存入接收數(shù)據(jù)寄存器。2串行通信軟件設(shè)計(jì)該軟件以WindRiver的TornadoII集成開發(fā)環(huán)境為平臺(tái)進(jìn)行開發(fā)。包括BSP開發(fā)、驅(qū)動(dòng)程序開發(fā)、應(yīng)用程序開發(fā)等步驟。2.1BSP開發(fā)BSP(BoardSupportPacket,板級(jí)支持包)是介于底層硬件和上層軟件之間的底層軟件開發(fā)包。它來(lái)源于嵌入式操作系統(tǒng)與硬件無(wú)關(guān)的設(shè)計(jì)思想[2,4]。操作系統(tǒng)被設(shè)計(jì)運(yùn)行在虛擬的硬件平臺(tái)上,對(duì)于具體的硬件平臺(tái),與硬件相關(guān)的代碼都被封裝在BSP中。它主要功能為屏蔽硬件,提供操作系統(tǒng)的驅(qū)動(dòng)及硬件驅(qū)動(dòng)。它的主要功能包括:系統(tǒng)引導(dǎo)時(shí),初始化目標(biāo)機(jī)硬件;提供目標(biāo)系統(tǒng)上的驅(qū)動(dòng)程序,如定時(shí)器、串口等[2,6]。開發(fā)BSP,主要以目標(biāo)板CPU的BSP文件為模板,建立工程并修改相關(guān)源文件。BSP文件在vx-works/target/config/all和vxworks/target/config/bsp-name文件夾里。其中,all文件夾里的文件是所有BSP的通用文件,bspname文件夾的文件是用戶自己定制的BSP文件。該系統(tǒng)采用PentiumCPU,因此以vxworks/target/config/pcPentium文件夾里的文件為模板進(jìn)行修改,開發(fā)過(guò)程如下。系統(tǒng)配置在config/all目錄包含的文件中完成。需要配置的頭文件有target/config/all/configAll.h和arget/config/pcPentium/config.h;需要配置的模塊文件有target/config/all/usrconfig.c和target/src/config目錄下的初始化模塊。配置頭文件主要利用定義(#define)和去除定義(#undef)實(shí)現(xiàn)。ConfigAll.h是全局配置頭文件,包括所有目標(biāo)系統(tǒng)公用的配置參數(shù)默認(rèn)定義,一般不修改此文件,而在Config.h中重新定義。以配置引導(dǎo)程序?yàn)槔?該系統(tǒng)開發(fā)過(guò)程中使用串口(此串口為目標(biāo)機(jī)開發(fā)板上的串口)調(diào)試VxWorks映像,端口1作為WDB代理通信通道,不設(shè)目標(biāo)機(jī)控制臺(tái)通#defineN-UART-CHANNELS2這樣,宿主機(jī)和目標(biāo)機(jī)通過(guò)一根串口線連接,VxWorks映像文件從目標(biāo)機(jī)軟盤上加載,宿主機(jī)通過(guò)串口來(lái)調(diào)試目標(biāo)機(jī)上的VxWorks。在config.h中修改如下內(nèi)容,同時(shí)在Makefile里配置ROM起始地址(ROM-BASE-ADRS)、代碼段入口(ROM-TEXT-ADRS)、ROM大小(ROM-SIZE)、VxWorks映像加載地址(RAM-LOW-ADRS)和BootROM加載地址(RAM-HIGH-ADRS)。該系統(tǒng)對(duì)模塊文件usrconfig.c和target/src/config目錄下的初始化模塊無(wú)需作修改[2]。2.2串口驅(qū)動(dòng)程序開發(fā)VxWorks操作系統(tǒng)有兩種方式實(shí)現(xiàn)驅(qū)動(dòng)。1)把設(shè)備驅(qū)動(dòng)程序作為獨(dú)立任務(wù)實(shí)現(xiàn),直接在頂層任務(wù)中實(shí)現(xiàn)硬件操作,完成特有專用的驅(qū)動(dòng)程序。2)VxWorks的I/O系統(tǒng)將設(shè)備程序作為內(nèi)核過(guò)程實(shí)現(xiàn)。這種方式便于實(shí)現(xiàn)I/O子系統(tǒng)的層次模型,便于文件系統(tǒng)一起把設(shè)備作為特殊文件處理,提供統(tǒng)一的管理、統(tǒng)一的界面和統(tǒng)一的使用方法,并把設(shè)備、文件及網(wǎng)絡(luò)通信組織成為一致的更高層次的抽象,為用戶提供統(tǒng)一的系統(tǒng)服務(wù)和用戶接口。采用這種驅(qū)動(dòng)方式,向上將TTY設(shè)備安裝到標(biāo)準(zhǔn)的I/O系統(tǒng)中,上層應(yīng)用通過(guò)標(biāo)準(zhǔn)的I/O接口完成對(duì)硬件設(shè)備的操作,向下提供對(duì)實(shí)際硬件設(shè)備的底層設(shè)備驅(qū)動(dòng)程序[7-8。串口1、串口2均采用82C52芯片作為UART。根據(jù)上位機(jī)的工作方式,端口1采用硬件握手中斷驅(qū)動(dòng)方式,有5根信號(hào)線:2根數(shù)據(jù)傳輸線(TXD、RXD),2根握手線(CTS、RTS)和1根地線。端口2采用軟件握手查詢工作方式,有3根信號(hào)線:2根數(shù)據(jù)傳輸線(TXD、RXD)和1根地線。各端口的默認(rèn)字長(zhǎng)均為8位、停止位2位、奇偶校驗(yàn)位1位、端口1默認(rèn)波特率為614.4kbps,端口2默認(rèn)波特率為460.8kbps。首先構(gòu)造設(shè)備描述符結(jié)構(gòu)體,設(shè)備描述符保存了與設(shè)備相關(guān)聯(lián)的數(shù)據(jù),它必須以設(shè)備頭(DEV-HDR)結(jié)構(gòu)為開頭。由于2個(gè)端口的工作方式完全不同,且無(wú)法預(yù)測(cè)數(shù)據(jù)傳輸?shù)南群箜樞蚝蛡鬏敃r(shí)機(jī),2個(gè)端口的數(shù)據(jù)接收函數(shù)必須分開編寫,其中uartRecQuery()函數(shù)用于端口2的查詢工作方式;uartRecData()函數(shù)用于端口1的中斷握手方式,其優(yōu)先級(jí)高于uartRecQuery()函數(shù)。但數(shù)據(jù)發(fā)送函數(shù)可以合并,因?yàn)閷?duì)于單處理器而言,是不可能實(shí)現(xiàn)真正的多任務(wù)并行處理的,即使編寫成兩個(gè)并行任務(wù),也是在處理器的控制下,按時(shí)間片輪轉(zhuǎn)執(zhí)行的。這樣不僅不能提高執(zhí)行效率,反而會(huì)因?yàn)槿蝿?wù)上下文切換造成一定的資源浪費(fèi),影響系統(tǒng)實(shí)時(shí)性。這種情況,更適合采用面向過(guò)程的方法對(duì)程序進(jìn)行設(shè)計(jì)和優(yōu)化。下面對(duì)其進(jìn)行說(shuō)明:調(diào)用后,其首先檢測(cè)輸入?yún)?shù)是否合法,而后根據(jù)端口號(hào)選擇工作方式(中斷或查詢),作相應(yīng)操作,開始發(fā)送數(shù)據(jù),每發(fā)送一個(gè)字節(jié)檢測(cè)并等待TBRE(發(fā)送緩沖寄存器空)信號(hào)變?yōu)橛行?,再發(fā)送下一字節(jié),數(shù)據(jù)全部發(fā)送完畢后函數(shù)返回。其工作流程如驅(qū)動(dòng)程序開發(fā)完成后,在usrConfig.c文件的usrRoot()函數(shù)里,調(diào)用API函數(shù)iosDrvInstall()對(duì)以上驅(qū)動(dòng)程序分別進(jìn)行安裝,再初始化設(shè)備描述符,并用iosDevAdd()將設(shè)備增加到設(shè)備列表中,最后將設(shè)備置為中斷模式。以上操作完成后即可用標(biāo)準(zhǔn)I/O函數(shù)操作兩個(gè)不同的串口設(shè)備2.3串口通信應(yīng)用程序設(shè)計(jì)數(shù)據(jù)通信按幀進(jìn)行,幀分為命令幀和應(yīng)答幀。幀格式為命令幀:命令碼長(zhǎng)度參數(shù)串異或應(yīng)答幀:應(yīng)答碼長(zhǎng)度參數(shù)串異或
對(duì)于多字節(jié)參數(shù),按高字節(jié)在前,低字節(jié)在后的次序發(fā)送。數(shù)據(jù)采用二進(jìn)制16位有符號(hào)整數(shù)數(shù)據(jù)格式。其中,最高位為符號(hào)位,數(shù)據(jù)為二進(jìn)制格式。數(shù)據(jù)傳輸時(shí),上位機(jī)首先發(fā)送一個(gè)命令幀,包含數(shù)據(jù)包個(gè)數(shù)、最后一個(gè)數(shù)據(jù)包的字節(jié)數(shù),除最后一個(gè)數(shù)據(jù)包外,每包大小為16kB。模擬器收到后,回復(fù)應(yīng)答幀并將收到的數(shù)據(jù)包個(gè)數(shù)、最后一個(gè)數(shù)據(jù)包的字節(jié)數(shù)一同發(fā)回校驗(yàn),對(duì)幀長(zhǎng)度校驗(yàn)無(wú)誤后開始發(fā)送數(shù)據(jù)。由于傳輸數(shù)據(jù)量較大,一般校驗(yàn)方法進(jìn)行內(nèi)容誤判率高,不能糾錯(cuò),大多數(shù)情況下需要重新發(fā)送,非常費(fèi)時(shí)。循環(huán)冗余校驗(yàn)法(CRC)由于實(shí)現(xiàn)簡(jiǎn)單,檢錯(cuò)能力強(qiáng),并能糾錯(cuò),可以較好地解決這個(gè)問(wèn)題。該系統(tǒng)采用CRC16進(jìn)行校驗(yàn)[9]。3結(jié)論串行通信以其網(wǎng)絡(luò)連接方便、抗干擾性能好、傳輸距離遠(yuǎn)等優(yōu)點(diǎn),在嵌入式系統(tǒng)得到廣泛
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 水痘疫苗產(chǎn)品知識(shí)培訓(xùn)
- 2025年康復(fù)治療學(xué)專業(yè)考試試題及答案
- 2025年國(guó)企中層干部競(jìng)聘筆試題及答案
- 2025年1+X操作與運(yùn)維試題庫(kù)(附答案解析)
- 醫(yī)院信息安全培訓(xùn)試題及答案解析
- 初三數(shù)學(xué)二次函數(shù)考后分析試卷及答案
- 寧夏農(nóng)行崗前培訓(xùn)考試及答案解析
- 安全一級(jí)教育題庫(kù)及答案解析
- 招投標(biāo)采購(gòu)從業(yè)考試題及答案解析
- 中住地產(chǎn)崗前通過(guò)考試及答案解析
- TCSF00782023森林草原消防無(wú)人機(jī)巡護(hù)作業(yè)技術(shù)規(guī)程
- DB62∕T 4964-2024 地質(zhì)災(zāi)害精細(xì)調(diào)查技術(shù)規(guī)范
- 水泥標(biāo)準(zhǔn)培訓(xùn)課件
- 2025秋二年級(jí)上冊(cè)語(yǔ)文上課課件 5 去外婆家
- 2025年七一黨課-作風(fēng)建設(shè)永遠(yuǎn)在路上學(xué)習(xí)教育黨課
- 2025年《互聯(lián)網(wǎng)銷售》課程標(biāo)準(zhǔn)
- 4《公民的基本權(quán)利和義務(wù)》第一課時(shí) 公開課一等獎(jiǎng)創(chuàng)新教案
- 家博會(huì)合同協(xié)議書
- 2025年中國(guó)高速雙針鏈縫機(jī)市場(chǎng)調(diào)查研究報(bào)告
- 幼兒園小班科學(xué)《蔬菜奶奶過(guò)生日》課件
- 《植物組織培養(yǎng)》課件 項(xiàng)目3 無(wú)菌操作技術(shù)
評(píng)論
0/150
提交評(píng)論