基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)_第4頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于VxWorks的雙485口管理系統(tǒng)設(shè)計(jì)摘要:vxrks嵌入式操作系統(tǒng)具有高效的實(shí)時(shí)任務(wù)管理與調(diào)度、任務(wù)的同步與通信、內(nèi)存管理、i/管理、時(shí)鐘管理等機(jī)制。兩個(gè)485口在通信速率、工作形式、控制方式上有較大差異且系統(tǒng)死線要求嚴(yán)格。詳細(xì)介紹了vxrks下雙485口串行通信系統(tǒng)bsp、驅(qū)動(dòng)程序和應(yīng)用程序的開發(fā)過(guò)程?;趘xrks構(gòu)建的嵌入式串行通信系統(tǒng)實(shí)時(shí)性好,效率高,可根據(jù)硬件進(jìn)展優(yōu)化配置;利用vxrks的i/系統(tǒng)將驅(qū)動(dòng)程序作為內(nèi)核過(guò)程,設(shè)備作為特殊文件處理,解決了工作方式不同的兩個(gè)485口的驅(qū)動(dòng)程序開發(fā)和接口統(tǒng)一問(wèn)題。關(guān)鍵詞:通信系統(tǒng);嵌入式串行通信引言vxrks是美國(guó)indriver公司專門

2、為嵌入式微處理器設(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)vxrks是該系統(tǒng)的首選3。本文以研制某型訓(xùn)練裝備為背景,詳細(xì)介紹了基于vxrks的雙485口通信系統(tǒng)設(shè)計(jì)方法和過(guò)程。1串口通信根本原理串口通信作為最常用的通信方式,用處非常廣泛,驅(qū)動(dòng)易于編寫,被絕大多數(shù)操

3、作系統(tǒng)默認(rèn)支持。其根本功能是實(shí)現(xiàn)和串行設(shè)備間的編碼轉(zhuǎn)換發(fā)送數(shù)據(jù)時(shí),字節(jié)數(shù)據(jù)經(jīng)pu通過(guò)通用異步接收發(fā)送器(簡(jiǎn)稱uart)轉(zhuǎn)換為串行位,從串行端口發(fā)送出去;接收數(shù)據(jù)時(shí),串行位通過(guò)uart被轉(zhuǎn)換為字節(jié)數(shù)據(jù),并放入緩沖區(qū),由pu讀齲通過(guò)對(duì)uart的內(nèi)部存放器的控制實(shí)現(xiàn)字節(jié)數(shù)據(jù)和位數(shù)據(jù)的轉(zhuǎn)換和通信。通信時(shí),uart按初始化設(shè)置,把起始位、校驗(yàn)位和停頓位加到來(lái)自pu的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ì)該軟件以indriver的trnadii集成

4、開發(fā)環(huán)境為平臺(tái)進(jìn)展開發(fā)。包括bsp開發(fā)、驅(qū)動(dòng)程序開發(fā)、應(yīng)用程序開發(fā)等步驟。2.1bsp開發(fā)bsp(bardsupprtpaket,板級(jí)支持包)是介于底層硬件和上層軟件之間的底層軟件開發(fā)包。它來(lái)源于嵌入式操作系統(tǒng)與硬件無(wú)關(guān)的設(shè)計(jì)思想2,4。操作系統(tǒng)被設(shè)計(jì)運(yùn)行在虛擬的硬件平臺(tái)上,對(duì)于詳細(xì)的硬件平臺(tái),與硬件相關(guān)的代碼都被封裝在bsp中。它主要功能為屏蔽硬件,提供操作系統(tǒng)的驅(qū)動(dòng)及硬件驅(qū)動(dòng)。它的主要功能包括:系統(tǒng)引導(dǎo)時(shí),初始化目的機(jī)硬件;提供目的系統(tǒng)上的驅(qū)動(dòng)程序,如定時(shí)器、串口等2,6。開發(fā)bsp,主要以目的板pu的bsp文件為模板,建立工程并修改相關(guān)源文件。bsp文件在vx-rks/target/nf

5、ig/all和vxrks/target/nfig/bsp-nae文件夾里。其中,all文件夾里的文件是所有bsp的通用文件,bspnae文件夾的文件是用戶自己定制的bsp文件。該系統(tǒng)采用pentiupu,因此以vxrks/target/nfig/ppentiu文件夾里的文件為模板進(jìn)展修改,開發(fā)過(guò)程如下。系統(tǒng)配置在nfig/all目錄包含的文件中完成。需要配置的頭文件有target/nfig/all/nfigall.h和arget/nfig/ppentiu/nfig.h;需要配置的模塊文件有target/nfig/all/usrnfig.和target/sr/nfig目錄下的初始化模塊。配置頭文

6、件主要利用定義(#define)和去除定義(#undef)實(shí)現(xiàn)。nfigall.h是全局配置頭文件,包括所有目的系統(tǒng)公用的配置參數(shù)默認(rèn)定義,一般不修改此文件,而在nfig.h中重新定義。以配置引導(dǎo)程序?yàn)槔?該系統(tǒng)開發(fā)過(guò)程中使用串口(此串口為目的機(jī)開發(fā)板上的串口)調(diào)試vxrks映像,端口1作為db代理通信通道,不設(shè)目的機(jī)控制臺(tái)通#definen-uart-hannels2這樣,宿主機(jī)和目的機(jī)通過(guò)一根串口線連接,vxrks映像文件從目的機(jī)軟盤上加載,宿主機(jī)通過(guò)串口來(lái)調(diào)試目的機(jī)上的vxrks。在nfig.h中修改如下內(nèi)容,同時(shí)在akefile里配置r起始地址(r-base-adrs)、代碼段入口(r

7、-text-adrs)、r大小(r-size)、vxrks映像加載地址(ra-l-adrs)和btr加載地址(ra-high-adrs)。該系統(tǒng)對(duì)模塊文件usrnfig.和target/sr/nfig目錄下的初始化模塊無(wú)需作修改2。2.2串口驅(qū)動(dòng)程序開發(fā)vxrks操作系統(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)vxrks的i/系統(tǒng)將設(shè)備程序作為內(nèi)核過(guò)程實(shí)現(xiàn)。這種方式便于實(shí)現(xiàn)i/子系統(tǒng)的層次模型,便于文件系統(tǒng)一起把設(shè)備作為特殊文件處理,提供統(tǒng)一的管理、統(tǒng)一的界面和統(tǒng)一的使用方法,并把設(shè)備、文件及網(wǎng)絡(luò)通信組織成為一致的更高層

8、次的抽象,為用戶提供統(tǒng)一的系統(tǒng)效勞和用戶接口。采用這種驅(qū)動(dòng)方式,向上將tty設(shè)備安裝到標(biāo)準(zhǔn)的i/系統(tǒng)中,上層應(yīng)用通過(guò)標(biāo)準(zhǔn)的i/接口完成對(duì)硬件設(shè)備的操作,向下提供對(duì)實(shí)際硬件設(shè)備的底層設(shè)備驅(qū)動(dòng)程序7-8。串口1、串口2均采用8252芯片作為uart。根據(jù)上位機(jī)的工作方式,端口1采用硬件握手中斷驅(qū)動(dòng)方式,有5根信號(hào)線:2根數(shù)據(jù)傳輸線(txd、rxd),2根握手線(ts、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.8kb

9、ps。首先構(gòu)造設(shè)備描繪符構(gòu)造體,設(shè)備描繪符保存了與設(shè)備相關(guān)聯(lián)的數(shù)據(jù),它必須以設(shè)備頭(dev-hdr)構(gòu)造為開頭。由于2個(gè)端口的工作方式完全不同,且無(wú)法預(yù)測(cè)數(shù)據(jù)傳輸?shù)南群箜樞蚝蛡鬏敃r(shí)機(jī),2個(gè)端口的數(shù)據(jù)接收函數(shù)必須分開編寫,其中uartrequery()函數(shù)用于端口2的查詢工作方式;uartredata()函數(shù)用于端口1的中斷握手方式,其優(yōu)先級(jí)高于uartrequery()函數(shù)。但數(shù)據(jù)發(fā)送函數(shù)可以合并,因?yàn)閷?duì)于單處理器而言,是不可能實(shí)現(xiàn)真正的多任務(wù)并行處理的,即使編寫成兩個(gè)并行任務(wù),也是在處理器的控制下,按時(shí)間片輪轉(zhuǎn)執(zhí)行的。這樣不僅不能進(jìn)步執(zhí)行效率,反而會(huì)因?yàn)槿蝿?wù)上下文切換造成一定的資源浪費(fèi),影響

10、系統(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)操作,開場(chǎng)發(fā)送數(shù)據(jù),每發(fā)送一個(gè)字節(jié)檢測(cè)并等待tbre(發(fā)送緩沖存放器空)信號(hào)變?yōu)橛行?再發(fā)送下一字節(jié),數(shù)據(jù)全部發(fā)送完畢后函數(shù)返回。其工作流程如驅(qū)動(dòng)程序開發(fā)完成后,在usrnfig.文件的usrrt()函數(shù)里,調(diào)用api函數(shù)isdrvinstall()對(duì)以上驅(qū)動(dòng)程序分別進(jìn)展安裝,再初始化設(shè)備描繪符,并用isdevadd()將設(shè)備增加到設(shè)備列表中,最后將設(shè)備置為中斷形式。以上操作完成后即可用標(biāo)準(zhǔn)i/函數(shù)操作兩個(gè)不同的串口設(shè)備2.3

11、串口通信應(yīng)用程序設(shè)計(jì)數(shù)據(jù)通信按幀進(jìn)展,幀分為命令幀和應(yīng)答鄭幀格式為命令幀:命令碼長(zhǎng)度參數(shù)串異或應(yīng)答幀:應(yīng)答碼長(zhǎng)度參數(shù)串異或?qū)τ诙嘧止?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ú)誤后開場(chǎng)發(fā)送數(shù)據(jù)。由于傳輸數(shù)據(jù)量較大,一般校驗(yàn)方法進(jìn)展內(nèi)容誤判率高,不能糾錯(cuò),大多數(shù)情況下需要重新發(fā)送,非常費(fèi)時(shí)。循環(huán)冗余校驗(yàn)法(r

12、)由于實(shí)現(xiàn)簡(jiǎn)單,檢錯(cuò)才能強(qiáng),并能糾錯(cuò),可以較好地解決這個(gè)問(wèn)題。該系統(tǒng)采用r16進(jìn)展校驗(yàn)9。3結(jié)論串行通信以其網(wǎng)絡(luò)連接方便、抗干擾性能好、傳輸間隔 遠(yuǎn)等優(yōu)點(diǎn),在嵌入式系統(tǒng)得到廣泛應(yīng)用。本文以某訓(xùn)練裝備研制為背景,詳細(xì)介紹了vxrks嵌入式操作系統(tǒng)下串行通信系統(tǒng)軟件的開發(fā)過(guò)程。利用了vxrks的i/系統(tǒng)將設(shè)備程序作為內(nèi)核過(guò)程,設(shè)備作為特殊文件處理,解決了不同工作方式下,兩個(gè)485口的驅(qū)動(dòng)程序開發(fā)和接口統(tǒng)一的問(wèn)題。目前,該系統(tǒng)已交付使用。運(yùn)行理論證明該通信系統(tǒng)軟件設(shè)計(jì)思路正確,設(shè)計(jì)方法得當(dāng)。對(duì)于其他嵌入式串行通信系統(tǒng)設(shè)計(jì)也具有一定的參考價(jià)值。參考文獻(xiàn):1liqing美.嵌入式系統(tǒng)的實(shí)時(shí)概念.王安生,譯.北京:北京航空航天大學(xué)出版社,2022.2王學(xué)龍.嵌入式vxrks系統(tǒng)開發(fā)與應(yīng)用.北京:人民郵電出版社,2022.3陳坤,陳志勇,黎湘.vxrks實(shí)時(shí)操作系統(tǒng)在相控陣?yán)走_(dá)系統(tǒng)中的應(yīng)用j.電光與控制,2022,12(4):51-53.4vxrksprgraersguide.indriversystein.,1999.5周啟平,張楊.vxrks程序員速查手冊(cè).北京:機(jī)械工業(yè)

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論