国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于實(shí)時(shí)系統(tǒng)的CAN節(jié)點(diǎn)系統(tǒng)設(shè)計(jì)

2017-04-18 03:38:25常州信息職業(yè)技術(shù)學(xué)院張科新
電子世界 2017年1期
關(guān)鍵詞:單芯片多任務(wù)報(bào)文

常州信息職業(yè)技術(shù)學(xué)院 張科新

基于實(shí)時(shí)系統(tǒng)的CAN節(jié)點(diǎn)系統(tǒng)設(shè)計(jì)

常州信息職業(yè)技術(shù)學(xué)院 張科新

針對(duì)CAN總線通訊技術(shù)的特點(diǎn),本文設(shè)計(jì)了一種滿足高可靠性要求的CAN網(wǎng)絡(luò)節(jié)點(diǎn)系統(tǒng)。該CAN節(jié)點(diǎn)基于FPGA平臺(tái),由帶CAN總線控制器的微處理器、CAN總線驅(qū)動(dòng)電路、擴(kuò)展接口電路組成,主控單元電路全部集成在單芯片中;本文不僅完成硬件電路設(shè)計(jì),還引入了實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS -II平臺(tái),并基于該系統(tǒng)開(kāi)發(fā)CAN節(jié)點(diǎn)功能應(yīng)用。整個(gè)完整電路以及軟件代碼都在FPGA平臺(tái)上完成了系統(tǒng)仿真以及功能驗(yàn)證,并最終通過(guò)節(jié)點(diǎn)功能驗(yàn)證板完成CAN節(jié)點(diǎn)實(shí)際系統(tǒng)測(cè)試。實(shí)際運(yùn)行結(jié)果證明該節(jié)點(diǎn)系統(tǒng)硬件功能正常,軟件系統(tǒng)有效可靠。

CAN網(wǎng)絡(luò);實(shí)時(shí)操作系統(tǒng);μC/OS -II;FPGA;CAN單芯片

引言

CAN總線(Controller Area Network,CAN)由德國(guó)博世公司在20世紀(jì)80年代初期提出[1],是一種架構(gòu)開(kāi)放、廣播式的網(wǎng)絡(luò)通訊協(xié)議[2],具有組網(wǎng)靈活、通訊便捷高效、可靠性高等優(yōu)點(diǎn)[3],最終成為ISO11898以及ISO11519國(guó)際標(biāo)準(zhǔn)。

典型的CAN節(jié)點(diǎn)控制系統(tǒng)通過(guò)前、后臺(tái)軟件實(shí)現(xiàn),一個(gè)CAN總線控制芯片一般由一個(gè)單片機(jī)控制,因此,節(jié)點(diǎn)系統(tǒng)中的主函數(shù)理論上可以被設(shè)計(jì)成一個(gè)無(wú)限大循環(huán)[5],各子任務(wù)在循環(huán)中依序?qū)㈨樞驁?zhí)行,各任務(wù)子函數(shù)通過(guò)軟件標(biāo)識(shí)、全局變量進(jìn)行通訊。針對(duì)部分高實(shí)時(shí)性消息處理任務(wù),則需要通過(guò)處理器的中斷處理程序完成實(shí)時(shí)響應(yīng)。但是隨著網(wǎng)絡(luò)規(guī)模的增加和應(yīng)用領(lǐng)域的拓展,CAN網(wǎng)絡(luò)通訊的實(shí)時(shí)性要求越來(lái)越高,面臨越來(lái)越嚴(yán)峻的挑戰(zhàn);同時(shí)在功能復(fù)雜的嵌入式應(yīng)用領(lǐng)域,實(shí)時(shí)多任務(wù)操作系統(tǒng)具有明顯的優(yōu)勢(shì)[6]。

本文基于FPGA平臺(tái)構(gòu)建單芯片集成CAN總線控制器與嵌入式微處理器,并基于實(shí)時(shí)多任務(wù)操作系統(tǒng)μC/OS- II設(shè)計(jì)并實(shí)現(xiàn)一種定制的CAN節(jié)點(diǎn)控制系統(tǒng),文中會(huì)具體闡述硬件實(shí)現(xiàn)以及程序設(shè)計(jì)。盡管CAN節(jié)點(diǎn)采用實(shí)時(shí)操作系統(tǒng)會(huì)增大代碼規(guī)模,但是節(jié)點(diǎn)總體的任務(wù)處理可靠性以及實(shí)時(shí)性得到有效提升[7],且利于應(yīng)用代碼的多任務(wù)規(guī)劃和擴(kuò)展。

1.CAN節(jié)點(diǎn)硬件電路設(shè)計(jì)

整個(gè)節(jié)點(diǎn)硬件電路主要由微處理器、CAN總線控制器、CAN收發(fā)器、電源模塊及光耦隔離器件模塊構(gòu)成。整體結(jié)構(gòu)框圖如圖1所示:

圖1 節(jié)點(diǎn)電路結(jié)構(gòu)圖

本節(jié)點(diǎn)系統(tǒng)電路設(shè)計(jì)的主要特點(diǎn)在于:

(1)使用SOC設(shè)計(jì)方案,實(shí)現(xiàn)微處理器和CAN總線控制器的單芯片集成,在大幅提高節(jié)點(diǎn)可靠性的同時(shí),確保節(jié)點(diǎn)控制器的穩(wěn)定工作;

(2)整個(gè)系統(tǒng)設(shè)計(jì)基于FPGA構(gòu)建、仿真和驗(yàn)證;

(3)支持標(biāo)準(zhǔn)CAN2.0B協(xié)議,最大數(shù)據(jù)傳輸波特率可達(dá)到1 Mbps;

(4)為了保證整個(gè)CAN網(wǎng)絡(luò)的可靠性,單節(jié)點(diǎn)設(shè)計(jì)采用雙CAN接口冗余架構(gòu),光耦隔離總線。

1.1 微處理器

基于openMSP4308051內(nèi)核實(shí)現(xiàn)16位定制微處理器,可以實(shí)現(xiàn)對(duì)支持ASM51指令的完全支持。該微處理器大部分指令在單時(shí)鐘周期內(nèi)執(zhí)行完成,最高運(yùn)行主頻可達(dá)50 MHz。為滿足運(yùn)行實(shí)時(shí)多任務(wù)操作系統(tǒng)要求,代碼存儲(chǔ)空間與程序運(yùn)行空間被設(shè)計(jì)成最大均可擴(kuò)展至32 KB。同時(shí),為完成多個(gè)并行任務(wù)的硬件操作,該微處理器內(nèi)部可根據(jù)實(shí)際應(yīng)用的不同,可配備通用雙向GPIO、計(jì)數(shù)器、UART、SPI等擴(kuò)展接口。

1.2 CAN總線控制器

CAN總線控制器采用硬件描述語(yǔ)言實(shí)現(xiàn),支持完整Controller Area Network 2.0B總線協(xié)議規(guī)范(簡(jiǎn)稱CAN2.0B規(guī)范),并最終基于FPGA平臺(tái)驗(yàn)證。設(shè)計(jì)的控制器,支持總線仲裁、數(shù)據(jù)編解碼、報(bào)文檢驗(yàn)、錯(cuò)誤處理等功能,其中最重要的工作是冗余設(shè)計(jì)的實(shí)現(xiàn)。設(shè)計(jì)完成的總線控制器通訊速率最高可達(dá)1 Mb/s。

1.3 CAN總線驅(qū)動(dòng)器及其外部電路

雙CAN電路冗余設(shè)計(jì)是本設(shè)計(jì)的突出特點(diǎn)之一,其主要功能是為了保證節(jié)點(diǎn)功能的可靠性,兩個(gè)接口分別與FPGA主控芯片的兩個(gè)CAN總線控制器端口相連,從而有效避免因CAN接口故障而導(dǎo)致節(jié)點(diǎn)失效現(xiàn)象的發(fā)生。同時(shí),為防止單個(gè)節(jié)點(diǎn)故障引起整個(gè)CAN網(wǎng)絡(luò)的癱瘓,總線驅(qū)動(dòng)與控制器通過(guò)光耦隔離。

2.CAN節(jié)點(diǎn)軟件系統(tǒng)設(shè)計(jì)

為了消除常見(jiàn)前后臺(tái)操作的弊端,保證節(jié)點(diǎn)系統(tǒng)的功能及其性能本節(jié)點(diǎn)軟件系統(tǒng)采用μC/OS II Tiny實(shí)時(shí)操作系統(tǒng)實(shí)現(xiàn)多任務(wù)調(diào)度功能,最終目的是提高軟件代碼的可讀性和可維護(hù)性。

2.1 μC/OS -II實(shí)時(shí)多任務(wù)操作系統(tǒng)

μC/OS - II是Micrium公司的基于優(yōu)先級(jí)搶占、多任務(wù)的小型硬實(shí)時(shí)操作系統(tǒng)。發(fā)布于1992年,內(nèi)核代碼量小巧,已廣泛應(yīng)用于高安全性的設(shè)備。其源碼99%符合MISRA c編碼標(biāo)準(zhǔn)。它通過(guò)了美國(guó)航空管理局(FAA)認(rèn)證,準(zhǔn)許用于航空和航天領(lǐng)域。RTX51 Tiny全部采用匯編代碼實(shí)現(xiàn),是專門為51系列單片機(jī)開(kāi)發(fā)的一款小型嵌入式實(shí)時(shí)操作系統(tǒng),具有系統(tǒng)開(kāi)銷小、代碼精練、速度快等優(yōu)點(diǎn),其運(yùn)行效率和性能比其它通用實(shí)時(shí)系統(tǒng)更好。其工作原理是實(shí)時(shí)操作系統(tǒng)將應(yīng)用層代碼劃分在任務(wù)處理中,從而簡(jiǎn)化了對(duì)實(shí)時(shí)性有要求的應(yīng)用程序設(shè)計(jì)和擴(kuò)展。

2.2 CAN節(jié)點(diǎn)任務(wù)設(shè)計(jì)

多任務(wù)的劃分是決定節(jié)點(diǎn)系統(tǒng)性能、決定軟件設(shè)計(jì)質(zhì)量的關(guān)鍵環(huán)節(jié)。節(jié)點(diǎn)設(shè)計(jì)可根據(jù)各個(gè)功能模塊的劃分提取其關(guān)鍵功能,基于多任務(wù)處理平臺(tái)的特點(diǎn),充分發(fā)揮并行優(yōu)勢(shì)。同時(shí),針對(duì)部分對(duì)實(shí)時(shí)性要求高的任務(wù),通過(guò)中斷服務(wù)完成響應(yīng)。

節(jié)點(diǎn)包含如下功能:

(1)通過(guò)串口控制臺(tái)設(shè)定節(jié)點(diǎn)控制命令

(2)整個(gè)過(guò)程中節(jié)點(diǎn)保持計(jì)時(shí)狀態(tài),并通過(guò)串口打印報(bào)時(shí)信息;

(3)節(jié)點(diǎn)實(shí)時(shí)收發(fā)報(bào)文信息;

(4)通過(guò)GPIO接口設(shè)定節(jié)點(diǎn)與外部傳感模塊連接方式,并根據(jù)指示信號(hào)發(fā)送相應(yīng)的CAN報(bào)文信息。

為實(shí)現(xiàn)上述功能,該節(jié)點(diǎn)可配置為PeliCAN模式,通訊位速率達(dá)到500 Kb/s。

本節(jié)點(diǎn)系統(tǒng)軟件功能上包含4個(gè)并行任務(wù)以及2個(gè)中斷服務(wù)程序。RTX51 TinyUSOS系統(tǒng)主要負(fù)責(zé)任務(wù)管理的調(diào)度,整個(gè)軟件任務(wù)流程從任務(wù)0開(kāi)始啟動(dòng),而具體調(diào)度過(guò)程則通過(guò)代碼中的系統(tǒng)調(diào)用相應(yīng)函數(shù)完成。

任務(wù)0的工作流程如圖2所示,使用任務(wù)0主要實(shí)現(xiàn)根據(jù)報(bào)文內(nèi)容產(chǎn)生相應(yīng)流程控制功能,包含主報(bào)文握手、事件報(bào)文、報(bào)文控制等主要功能。通過(guò)自設(shè)狀態(tài)標(biāo)識(shí)判斷軟件系統(tǒng)可設(shè)定正常數(shù)據(jù)通訊的CAN端口,然后根據(jù)報(bào)文握手協(xié)議實(shí)現(xiàn)報(bào)文事件等待應(yīng)用層應(yīng)答,同時(shí),為提高系統(tǒng)運(yùn)行的容錯(cuò)率,引入冗余端口重發(fā)機(jī)制。冗余端口重發(fā)機(jī)制主要實(shí)現(xiàn)指節(jié)點(diǎn)發(fā)送握手報(bào)文,其特點(diǎn)是需要接收相應(yīng)應(yīng)答。如出現(xiàn)在約定時(shí)間內(nèi)1通道沒(méi)有收到響應(yīng)情況,那么端口就會(huì)重發(fā)報(bào)文;如果依舊沒(méi)有響應(yīng),那么端口將切換到2通道實(shí)現(xiàn)報(bào)文的重發(fā);需要注意的是,在整個(gè)過(guò)程結(jié)束后,系統(tǒng)退出該過(guò)程,否則系統(tǒng)將判定為運(yùn)行超時(shí),本次通訊將被認(rèn)定為失敗。

圖2 任務(wù)0流程圖

任務(wù)2中的分為軟件控制接收和軟件控制發(fā)送兩部分,主要實(shí)現(xiàn)外部擴(kuò)展功能。完整軟

件工作流程如圖3所示。

圖3 任務(wù)2流程

任務(wù)1和任務(wù)3分別實(shí)現(xiàn)計(jì)時(shí)以及串口命令控制臺(tái)功能,在此不做贅述。

3.實(shí)驗(yàn)結(jié)果

本實(shí)驗(yàn)基于xilinx公司的spartant63ADSP系列FPGA平臺(tái),實(shí)現(xiàn)在單芯片上集成節(jié)點(diǎn)系統(tǒng)的主控邏輯功能,最終整體系統(tǒng)在設(shè)計(jì)實(shí)現(xiàn)之后,通過(guò)FPGA仿真驗(yàn)證和板級(jí)測(cè)試。

實(shí)驗(yàn)過(guò)程分為仿真驗(yàn)證和板級(jí)驗(yàn)證兩部分:仿真驗(yàn)證的過(guò)程基于ISE開(kāi)發(fā)平臺(tái)編寫(xiě)代碼,并通過(guò)modelsim仿真和調(diào)試;基于周立功CAN測(cè)試平臺(tái)測(cè)試實(shí)現(xiàn)板級(jí)測(cè)試。整個(gè)測(cè)試過(guò)程,保持仿真驗(yàn)證平臺(tái)與實(shí)測(cè)平臺(tái)的功能參數(shù)設(shè)置一致——微處理器主頻為16 MHz,CAN總線速率可達(dá)到500 Kbps。

實(shí)驗(yàn)結(jié)果表明基于實(shí)時(shí)操作系統(tǒng)的CAN節(jié)點(diǎn)系統(tǒng)功能運(yùn)行正常,同時(shí)單芯片的CAN接口冗余設(shè)計(jì)可以保證節(jié)點(diǎn)的通訊穩(wěn)定。

仿真結(jié)果表明多任務(wù)實(shí)時(shí)操作系統(tǒng)在保持良好的實(shí)時(shí)性的同時(shí)可很好地實(shí)現(xiàn)并行多任務(wù)處理的要求。

4.結(jié)束語(yǔ)

本設(shè)計(jì)基于FPGA平臺(tái)構(gòu)建單主控芯片的CAN節(jié)點(diǎn)系統(tǒng),同時(shí)應(yīng)用實(shí)時(shí)多任務(wù)操作系統(tǒng)改善編程效率。以往結(jié)構(gòu)化編程思想難以滿足任務(wù)量大、控制環(huán)節(jié)多,關(guān)系復(fù)雜的現(xiàn)實(shí)應(yīng)用要求,作為單片機(jī)的定制操作系統(tǒng)RTX51 TinyμC/OS 能夠充分保證系統(tǒng)的穩(wěn)定性和應(yīng)用程序的性能。實(shí)踐證明,使用實(shí)時(shí)操作系統(tǒng)可在提升程序可維護(hù)性的同時(shí),有效地降低整體軟件的編寫(xiě)復(fù)雜度。

[1]Cena G,Valenzano A.A Protocol for Automatic Node Discovery in CANopen Networks[J]. Industrial Electronics,2003,50: 419-430.

[2]曹立文,李華旺,劉勇.微小衛(wèi)星CAN網(wǎng)絡(luò)自組織技術(shù)研究[J].計(jì)算機(jī)工程,2013,39:90-93.

[3]吳從中,彭維,陳瑋.基于PIC1 8F4550的USB-CAN總線通信模塊設(shè)計(jì)[J].合肥工業(yè)大學(xué)學(xué)報(bào),2010,11:1648-1651.

[4]桑海偉,姚凱學(xué).基于CAN總線的微機(jī)綜保系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)控技術(shù),2014,4: 89-93.

[5]Jean J Labrosse. uC/OS-II-源碼公開(kāi)的實(shí)時(shí)嵌入式操作系統(tǒng)[M].邵貝貝,譯.北京:中國(guó)電力出版社,2001.

[6]Rourab Paul. Real time communication between multiple FPGA systems in multitasking environment using RTOS[C].China Macao: ICDCS, 201203: 130-134.

[7]Djassemi, Manocher. Emergence of multitasking machining systems: Applications and best selection practices[J].Journal of Manufacturing Technology Management, 2009, 20:130-142.

張科新(1981-),男,江蘇常州人,上海大學(xué)碩士,工作單位:常州信息職業(yè)技術(shù)學(xué)院,教師,研究方向:電子科學(xué)與技術(shù)。

猜你喜歡
單芯片多任務(wù)報(bào)文
基于J1939 協(xié)議多包報(bào)文的時(shí)序研究及應(yīng)用
汽車電器(2022年9期)2022-11-07 02:16:24
CTCS-2級(jí)報(bào)文數(shù)據(jù)管理需求分析和實(shí)現(xiàn)
淺析反駁類報(bào)文要點(diǎn)
基于中心化自動(dòng)加權(quán)多任務(wù)學(xué)習(xí)的早期輕度認(rèn)知障礙診斷
RDA宣布推出高性能藍(lán)牙音頻系統(tǒng)單芯片RDA5836
電子制作(2017年18期)2017-12-30 09:53:45
基于TEA1532反激式開(kāi)關(guān)電源的設(shè)計(jì)與調(diào)試
基于判別性局部聯(lián)合稀疏模型的多任務(wù)跟蹤
ATS與列車通信報(bào)文分析
電測(cè)與儀表(2016年5期)2016-04-22 01:13:46
Marvell發(fā)布64位單芯片移動(dòng)通信處理器
卢湾区| 禹城市| 姜堰市| 通辽市| 东兴市| 来宾市| 三门峡市| 诏安县| 太保市| 康马县| 陇西县| 荆州市| 遂宁市| 临城县| 孟津县| 鹤山市| 泸定县| 同仁县| 临西县| 铁岭县| 建昌县| 西贡区| 东乌| 莎车县| 兰坪| 高青县| 杭州市| 兰州市| 麻江县| 信丰县| 偏关县| 修文县| 巴楚县| 乌兰浩特市| 葵青区| 广饶县| 景洪市| 华池县| 马龙县| 昭觉县| 灌阳县|