當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]摘要:CANopcn作為一種開放性好、標(biāo)準(zhǔn)化、低成本的基于CAN總線的應(yīng)用層協(xié)議,目前已經(jīng)廣泛地應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域。文章根據(jù)CANop-en DS301應(yīng)用層協(xié)議規(guī)范,在以C8051F500單片機(jī)為控制核心的開發(fā)平臺(tái)上建立了CANopen

摘要:CANopcn作為一種開放性好、標(biāo)準(zhǔn)化、低成本的基于CAN總線的應(yīng)用層協(xié)議,目前已經(jīng)廣泛地應(yīng)用于工業(yè)自動(dòng)化領(lǐng)域。文章根據(jù)CANop-en DS301應(yīng)用層協(xié)議規(guī)范,在以C8051F500單片機(jī)為控制核心的開發(fā)平臺(tái)上建立了CANopen從節(jié)點(diǎn)協(xié)議棧總框架,并實(shí)現(xiàn)了其中的各種功能模塊,整合成完整的協(xié)議棧,在搭建的實(shí)驗(yàn)平臺(tái)上進(jìn)行了協(xié)議棧的測試,實(shí)驗(yàn)表明:該協(xié)議棧功能完整,實(shí)時(shí)性滿足使用要求。
關(guān)鍵詞:CANopen;C8051F500;從站協(xié)議

0 引言
   
隨著現(xiàn)代工業(yè)的發(fā)展,控制系統(tǒng)的規(guī)模與復(fù)雜度成倍增長,數(shù)據(jù)傳輸?shù)耐掏铝亢涂煽啃砸笠搽S之提升,現(xiàn)場總線技術(shù)就是在這種情況下被提出并迅速發(fā)展起來的。CAN總線是現(xiàn)場總線國際標(biāo)準(zhǔn)之一,它具有可靠性好、實(shí)時(shí)性高、抗干擾能力較強(qiáng)等優(yōu)點(diǎn),廣泛應(yīng)用于汽車和工業(yè)控制領(lǐng)域。但由于其只定義了物理層和數(shù)據(jù)鏈路層,并非一個(gè)完整的協(xié)議,在高級(jí)應(yīng)用中需要應(yīng)用層的支持,于是CANopen標(biāo)準(zhǔn)應(yīng)運(yùn)而生。
    CANopen是自動(dòng)化CAN用戶和制造商協(xié)會(huì)(CiA,CAN-in-Automation)定義的CAN總線應(yīng)用層協(xié)議。它采用面向?qū)ο蟮乃枷朐O(shè)計(jì),具有很好的模塊化特性和很高的適應(yīng)性。CANopcn不僅定義了應(yīng)用層和通信子協(xié)議,還為大多數(shù)重要的設(shè)備類型定義了大量的規(guī)范,不同廠商遵循這些規(guī)范開發(fā)出的設(shè)備之間能夠輕易實(shí)現(xiàn)互操作。
    CANopen作為基于CAN總線的高層協(xié)議標(biāo)準(zhǔn),在發(fā)布后不久就獲得了廣泛的承認(rèn)。尤其是在歐洲,CANopcn協(xié)議被認(rèn)為是在基于CAN的工業(yè)系統(tǒng)中占據(jù)領(lǐng)導(dǎo)地位的標(biāo)準(zhǔn)。

1 CANopen協(xié)議總體框架
    CANopen協(xié)議棧主要包含了兩部分,一部分是通信規(guī)范,另一部分是設(shè)備規(guī)范。通信規(guī)范(CiA:DS-3011定義了基本的數(shù)據(jù)通信方式和特性,設(shè)備規(guī)范(CiA DSP 401-DSP4XX)則針對(duì)不同的設(shè)備類型進(jìn)行了報(bào)文ID的分配和設(shè)備特征數(shù)據(jù)的定義,規(guī)范了設(shè)備的行為規(guī)范。其中通信規(guī)范是通用的,本文設(shè)計(jì)與實(shí)現(xiàn)的就是這一部分。
    在通信規(guī)范中,為了互操作性和兼容性,CANopcn設(shè)備都必須遵從標(biāo)準(zhǔn)的CANopen設(shè)備模型來進(jìn)行軟件設(shè)計(jì),如圖1所示。


    CAN通信接口通過操作CAN控制器,在總線上收發(fā)各種通信對(duì)象,來實(shí)現(xiàn)與其他CANopen節(jié)點(diǎn)基于協(xié)議規(guī)范的數(shù)據(jù)交互;對(duì)象字典是CANop-cn設(shè)備的核心,存儲(chǔ)節(jié)點(diǎn)所有的信息,并向應(yīng)用程序和通信對(duì)象提供訪問接口;通信部分通過對(duì)對(duì)象字典進(jìn)行操作,與其他節(jié)點(diǎn)交換各種通信對(duì)象實(shí)現(xiàn)CANopen操作;應(yīng)用程序由用戶根據(jù)應(yīng)用要求和設(shè)備的具體任務(wù)自己實(shí)現(xiàn)。

2 CANopen功能模塊實(shí)現(xiàn)
2.1 CAN驅(qū)動(dòng)程序?qū)崿F(xiàn)
   
針對(duì)C8051F500單片機(jī),實(shí)現(xiàn)了CAN驅(qū)動(dòng)程序。CAN驅(qū)動(dòng)程序負(fù)責(zé)完成CAN控制器的操作、報(bào)文收發(fā)、CAN錯(cuò)誤處理等任務(wù),由以下部分組成:1)CAN控制器的初始化,主要對(duì)CAN控制器的相關(guān)寄存器進(jìn)行配置,包括波特率的設(shè)置,消息對(duì)象的配置,接收、發(fā)送屏蔽寄存器的設(shè)置;2)CAN發(fā)送程序,任務(wù)是將打包好的數(shù)據(jù)根據(jù)幀標(biāo)識(shí)符,通過接口寄存器分發(fā)到相應(yīng)的郵箱里,然后啟動(dòng)發(fā)送;3)CAN接收程序,由CAN中斷處理程序來完成,負(fù)責(zé)將報(bào)文分配給各個(gè)通信模塊處理。
2.2 對(duì)象字典實(shí)現(xiàn)
   
對(duì)象字典OD(Object Dictionary)是一個(gè)有序的對(duì)象組:每個(gè)對(duì)象采用一個(gè)16位的索引值來尋址,同時(shí)定義了一個(gè)8位的子索引用于訪問數(shù)據(jù)結(jié)構(gòu)中的單個(gè)元素。每個(gè)CANopen設(shè)備中都必須包含一個(gè)對(duì)象字典。對(duì)象字典分為了兩部分,通用的通信子協(xié)議區(qū)域和特定的設(shè)備子協(xié)議區(qū)域,前者包含了描述這個(gè)設(shè)備通信行為的所有參數(shù),后者包含了設(shè)備任務(wù)相關(guān)的所有數(shù)據(jù)。
    本文設(shè)計(jì)的對(duì)象字典結(jié)構(gòu)如圖2所示。


    針對(duì)單片機(jī)計(jì)算資源緊缺的特點(diǎn),對(duì)象字典實(shí)體采用二維靜態(tài)結(jié)構(gòu)體來實(shí)現(xiàn),它具有結(jié)構(gòu)簡單、訪問效率高等優(yōu)點(diǎn)。讀寫函數(shù)與對(duì)象字典實(shí)體配套使用,目的是將對(duì)象字典封閉起來,有效地杜絕非法訪問的情況,保障對(duì)象字典的數(shù)據(jù)安全。
2.3 通信對(duì)象的實(shí)現(xiàn)
    CANopcn協(xié)議規(guī)定了4類通訊對(duì)象:SDO(Service Data Objeet,服務(wù)數(shù)據(jù)對(duì)象)、過程數(shù)據(jù)對(duì)象)、NMT(NetworkManagement,網(wǎng)絡(luò)管理對(duì)象)以及特殊功能對(duì)象。
2.3.1 PDO模塊
    PDO服務(wù)主要用來實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)的傳輸,基于生產(chǎn)者和消費(fèi)者模式,它的通信行為由通信參數(shù)決定,傳送的數(shù)據(jù)由映射參數(shù)來決定。本文實(shí)現(xiàn)的PDO模塊包含了三個(gè)子模塊,如圖3所示。


    建立PDO報(bào)文模塊被其他兩個(gè)模塊調(diào)用,他的任務(wù)是根據(jù)映射參數(shù)表把對(duì)象字典中對(duì)象的數(shù)據(jù)復(fù)制進(jìn)PDO報(bào)文中,交由其他模塊處理,建立過程中需注意PDO報(bào)文的剩余容量。接收PDO模塊的任務(wù)是完成PDO數(shù)據(jù)的解析,將數(shù)據(jù)放入指定對(duì)象中;發(fā)送模塊負(fù)責(zé)根據(jù)CANopen協(xié)議規(guī)范,依據(jù)PDO通信參數(shù),實(shí)現(xiàn)各種PDO傳輸方式,包括同步周期、同步事件預(yù)觸發(fā)、異步事件觸發(fā)等方式。
2.3.2 SDO模塊
    SDO模塊是對(duì)象字典的遠(yuǎn)程訪問接口,一般被用來進(jìn)行節(jié)點(diǎn)參數(shù)配置和獲取。它基于客戶端服務(wù)器模式,每個(gè)訪問請(qǐng)求都必須應(yīng)答,實(shí)現(xiàn)了可靠的點(diǎn)對(duì)點(diǎn)數(shù)據(jù)傳輸。CANopen為SDO服務(wù)設(shè)計(jì)了5個(gè)請(qǐng)求/應(yīng)答子協(xié)議,分別是:啟動(dòng)域下載/上傳、域分段下載\上傳、中止域傳送。
本文設(shè)計(jì)的SDO模塊包含了訪問發(fā)起模塊和應(yīng)答模塊。訪問發(fā)起模塊的任務(wù)是根據(jù)上層的調(diào)用發(fā)起SDO通信,實(shí)現(xiàn)了5個(gè)訪問子協(xié)議中的請(qǐng)求部分;應(yīng)答模塊則解析收到的SDO報(bào)文中攜帶的命令字,實(shí)現(xiàn)了5個(gè)訪問子協(xié)議中的應(yīng)答部分。
2.3.3 NMT模塊
   
每個(gè)CANopen節(jié)點(diǎn)內(nèi)都運(yùn)行著一個(gè)狀態(tài)機(jī),狀態(tài)轉(zhuǎn)換由主節(jié)點(diǎn)控制,不同的狀態(tài)對(duì)應(yīng)不同的節(jié)點(diǎn)任務(wù),也對(duì)應(yīng)了不同的模塊可用性。狀態(tài)轉(zhuǎn)換如圖4所示。


    本文實(shí)現(xiàn)的從節(jié)點(diǎn)NMT模塊的任務(wù)是響應(yīng)主站的NMT控制命令,并反饋?zhàn)陨頎顟B(tài),匯報(bào)錯(cuò)誤信息。狀態(tài)轉(zhuǎn)換模塊的流程:接收到NMT命令后,首先解析NMT命令字,檢查狀態(tài)轉(zhuǎn)換合法性,然后設(shè)置節(jié)點(diǎn)狀態(tài),啟停各功能模塊:狀態(tài)反饋模塊采用了CiA組織推薦使用的心跳模式,即從節(jié)點(diǎn)周期性地向網(wǎng)絡(luò)上發(fā)送包含自身狀態(tài)信息的心跳報(bào)文,供主站和其他節(jié)點(diǎn)監(jiān)視。
2.3.4 總體流程
   
借助于狀態(tài)機(jī),設(shè)計(jì)了如圖5的程序運(yùn)行總體流程。


    從節(jié)點(diǎn)上電啟動(dòng)后,先進(jìn)行必要的硬件初始化,如系統(tǒng)時(shí)鐘、port、CAN接口、定時(shí)器、AD等,完成后設(shè)置節(jié)點(diǎn)狀態(tài)為initialization,進(jìn)入狀態(tài)機(jī),軟件在狀態(tài)機(jī)內(nèi)循環(huán)運(yùn)行。通信初始化函數(shù)主要負(fù)責(zé)初始化從節(jié)點(diǎn)的對(duì)象字典,節(jié)點(diǎn)初始化函數(shù)則負(fù)責(zé)將節(jié)點(diǎn)的輸出置為上電值,設(shè)置完成后設(shè)置節(jié)點(diǎn)狀態(tài)為pre-operational,軟件運(yùn)行至preoperational函數(shù),這個(gè)函數(shù)的功能是協(xié)助主站完成對(duì)從節(jié)點(diǎn)的通信配置。當(dāng)從節(jié)點(diǎn)收到start remote node命令后,進(jìn)入operational狀態(tài),此狀態(tài)包含了從節(jié)點(diǎn)的控制程序,即從節(jié)點(diǎn)開始正常運(yùn)行,執(zhí)行指定的底層任務(wù),如數(shù)據(jù)采集、控制輸出等。若節(jié)點(diǎn)接收到主站的stop remote node命令,則進(jìn)入stopped函數(shù),在此狀態(tài)下從節(jié)點(diǎn)停止執(zhí)行底層任務(wù),等待主節(jié)點(diǎn)的啟動(dòng)命令。

3 實(shí)驗(yàn)
3.1 測試實(shí)驗(yàn)平臺(tái)的搭建
   
為了測試本文的CANopen從節(jié)點(diǎn)協(xié)議,搭建了基于USB-CAN模塊的測試平臺(tái),結(jié)構(gòu)如圖6所示。主站是裝有ZLGCANTest的計(jì)算機(jī),以USB-CAN通信模塊作為CAN網(wǎng)絡(luò)接口,實(shí)現(xiàn)與從站的連接。示波器監(jiān)視總線波形,通信波特率設(shè)置為500kb/s。


3.2 實(shí)時(shí)性測試
   
首先進(jìn)行了協(xié)議棧的實(shí)時(shí)性測試,測試分為兩步,第一步是測試PDO通信的最小周期,設(shè)置PDO為同步周期發(fā)送模式,即收到一個(gè)同步報(bào)文后返回一個(gè)數(shù)據(jù)包,測試結(jié)果如圖7所示。


    可見同步幀與數(shù)據(jù)包的間隔時(shí)間約為1ms,整個(gè)總線占用時(shí)間約為1.3ms。
    第二步進(jìn)行了SDO模塊的最小響應(yīng)時(shí)間測試,測試結(jié)果如圖8所示。


    可見SDO請(qǐng)求報(bào)文和響應(yīng)報(bào)文間隔時(shí)間約為0.7ms,總線占用時(shí)間約為1.1ms。協(xié)議棧的實(shí)時(shí)性基本滿足我們的使用要求。
3.3 功能性測試
   
我們對(duì)實(shí)現(xiàn)的協(xié)議棧進(jìn)行了CANopen協(xié)議功能和兼容性的測試,測試結(jié)果如表1所示。


    目前,我們已經(jīng)將該協(xié)議棧應(yīng)用于實(shí)驗(yàn)室建立的低溫等離子體測控設(shè)備系統(tǒng)中,經(jīng)過一段時(shí)間的使用,此協(xié)議棧滿足我們的使用要求。

4 結(jié)論
   
本文依據(jù)CiA DS301規(guī)范,設(shè)計(jì)了CANopen協(xié)議總體框架和軟件功能模塊,并將其應(yīng)用于基于C8051F500獸片機(jī)的嵌入式CAN智能節(jié)點(diǎn)上,實(shí)現(xiàn)了CANopen從站軟件。協(xié)議棧采用C語言編寫,可移植性較好。經(jīng)測試表明:協(xié)議棧實(shí)時(shí)性滿足使用要求,功能完整性較好。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉