




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
一種多通道can總線通訊模塊的設(shè)計
0總結(jié)co線是有效支持分布控制的工業(yè)線。廣泛應(yīng)用于船舶、汽車、鐵路、地礦勘探和其他領(lǐng)域。1模塊的功能要求本模塊需要實現(xiàn)4通道CAN總線通信功能,采用M模塊標(biāo)準(zhǔn)設(shè)計,與VME總線M模塊載板共同組成一個VME總線4通道CAN總線通訊模塊,應(yīng)用于某基于VME總線的燃?xì)廨啓C監(jiān)控系統(tǒng)實現(xiàn)多通道CAN總線通信,模塊功能設(shè)計要求如下:對于CAN總線接口,各通道特性如下:1)CAN總線通信時采用CAN2.0B協(xié)議;2)CAN通訊波特率可程控,最高為1Mbps;3)最長通訊距離大于10米;4)各個CAN接口之間電氣隔離,隔離電壓大于500V。對于M模塊接口,技術(shù)要求如下:1)支持A08,D08工作模式;2)采用INTA中斷模式。2接口轉(zhuǎn)換模塊的設(shè)計從上節(jié)功能要求可以看出,本模塊硬件工作需要設(shè)計CAN總線接口,M模塊接口,同時為了實現(xiàn)兩種接口之間的通信,還需要設(shè)計中間的接口轉(zhuǎn)換部分作為橋梁,由此可得到模塊的基本框圖如圖1。下面將重點介紹本模塊這幾個方面的硬件設(shè)計工作。2.1模塊的電路設(shè)計本部分為模塊接入CAN網(wǎng)絡(luò)的電路接口,所有CAN節(jié)點接入CAN網(wǎng)絡(luò),都必須通過符合CAN總線協(xié)議規(guī)范的控制器和收發(fā)器。CAN控制器用于節(jié)點通信控制,實現(xiàn)ISO/OSI模型的數(shù)據(jù)鏈路層功能;CAN收發(fā)器用于加強節(jié)點在CAN總線系統(tǒng)中的驅(qū)動能力,實現(xiàn)物理層功能。目前常用的CAN控制器有兩種,一種是獨立CAN控制器,它不與其它智能單元處理單元集成在一起,是一個單獨的控制器件;另一種是集成型CAN控制器,即將CAN控制器與微處理器集成在一個芯片上。前者編寫的CAN應(yīng)用程序是針對獨立CAN控制器的,程序可移植性強,設(shè)計更加靈活,可以與不同的處理器配合,編寫好的程序可以靈活地移植到任意的處理器平臺中,但是會占用MCU的I/O資源。后者需專用開發(fā)工具,編寫的程序只針對特定處理器,可移植性差,且需針對該控制器設(shè)計獨立的調(diào)試鏈路。考慮M模塊是作為功能模塊搭載于其他處理器平臺中,模塊本身無需自帶MCU,且M模塊接口的I/O資源比較豐富,故選用獨立CAN控制器。目前主流的CAN獨立控制器通常采用NXP公司的SJA1000和Microchip公司的MCP2515。SJA1000采用并行I/O的51接口時序;MCP采用串行的SPI接口配置,采用較少的線即可與處理器連接。二者都能實現(xiàn)CAN2.0B的CAN總線通信,但是SJA1000芯片采用的是5V電壓供電,管腳I/O電平也是5V,MCP2515采用3.3V供電,管腳電平為3.3V,而M模塊接口信號中提供了5V電源輸入,采用5V電壓芯片的話在電路上不需要再設(shè)計額外的供電模塊,可以在一定程度上簡化電路設(shè)計;另外雖然SPI接口比較簡單,但在一定程度上會增加接口轉(zhuǎn)換和軟件的設(shè)計復(fù)雜度,所以本設(shè)計采用SJA1000作為CAN控制器。SJA1000在許多場合中都具有適用性,特別是在系統(tǒng)優(yōu)化,診斷和維護等方面CAN總線收發(fā)器通常有隔離收發(fā)器和非隔離收發(fā)器兩種。常見的非隔離收發(fā)器如NXP的TJA1050,這種收發(fā)器在實現(xiàn)電氣隔離設(shè)計時,通常加上光電耦合使得CAN控制器和收發(fā)器相連以達到電氣隔離的目的,同時還需要設(shè)計電源隔離電路。這種設(shè)計方式相對復(fù)雜,并且占用電路板面積較大,M模塊標(biāo)準(zhǔn)允許的電路板面積較小,本設(shè)計需要同時實現(xiàn)4路相互電氣隔離的CAN總線接口,采用光電耦合電路加隔離電源的方案將會使模塊設(shè)計難度增加。而隔離收發(fā)器通常內(nèi)部集成了隔離電路,減少了額外輔助電路的設(shè)計,故本模塊采用隔離式收發(fā)器。AD公司的CAN隔離收發(fā)器系列可供選擇,該系列有ADM3052/3/4,都可達到1Mbps的CAN通訊波特率,都有大于500V的隔離電壓。但是AD3053集成度更高,其功能框圖如圖2所示,它采用單個SOIC表貼封裝,同時集成了通道隔離器、CAN收發(fā)器以及隔離式DC/DC轉(zhuǎn)換器2.2m模塊接口電路設(shè)計M模塊接口部分決定了本模塊與其上層系統(tǒng)的互聯(lián)性,M模塊規(guī)范規(guī)定了接口特性、電氣和機械要求等。對于具有M模塊載板的任何平臺,例如VMEbus,VXI,LXI等系統(tǒng),都可使用M模塊實現(xiàn)板級互聯(lián)。因此,由于本模塊便于拆裝,接口靈活性強,在許多平臺具有很強的實用性。M模塊有3種機械尺寸規(guī)格:單倍尺寸、雙倍尺寸以及三倍尺寸,本設(shè)計采用單倍尺寸規(guī)格,M模塊接口通過2排40針連接器與板連接,選擇A08,D08,INTA工作模式,即8位地址線模式,8位數(shù)據(jù)線,軟件結(jié)束中斷。本設(shè)計M模塊的接口信號有:地址信號a7~a1,數(shù)據(jù)信號d7~d0,片選信號cs_n,讀寫信號wr_n(低電平為寫有效,高電平為讀有效),數(shù)據(jù)應(yīng)答信號dtack,中斷請求信號irq_n以及復(fù)位信號rst_n,另外還有+5V的電壓輸入信號和接地信號,可給模塊上的其他器件提供電源供電??梢钥闯鯩模塊接口的地址線和數(shù)據(jù)線是非復(fù)用的,基于其接口信號特點,M模塊與載板之間的數(shù)據(jù)傳輸模式有基本讀寫方式和中斷方式,通過片選信號cs_n和數(shù)據(jù)應(yīng)答信號dtack之間的握手機制實現(xiàn)數(shù)據(jù)的異步傳輸,握手時間決定了數(shù)據(jù)傳輸速率。2.3mc模塊的接口轉(zhuǎn)換通過對CAN總線接口部分和M模塊接口部分的分析,可以看出兩部分的接口時序不同,同時為了實現(xiàn)4個CAN通道的接口擴展也需要對接口進行中間的處理。因此M模塊接口與CAN總線控制器接口不能簡單地直連,需進行傳輸方向的控制和數(shù)據(jù)隔離。本設(shè)計選用可編程邏輯器件實現(xiàn)中間接口轉(zhuǎn)換,該器件主要實現(xiàn)以下幾個方面功能1)完成M模塊接口和CAN控制器接口之間的邏輯、時序轉(zhuǎn)換,實現(xiàn)M模塊接口的地址數(shù)據(jù)非復(fù)用信號到CAN控制器的地址數(shù)據(jù)復(fù)用信號之間的雙向轉(zhuǎn)換,實現(xiàn)異步握手通信機制到同步通信機制之間的轉(zhuǎn)換;2)通過對M模塊接口地址線譯碼,實現(xiàn)對4個SJA1000的片選功能,完成多通道擴展(本模塊為4通道)。M模塊地址線為a7~a1,由于SJA1000的寄存器范圍為0~31,需要M模塊5條地址線a5~a1即可尋址,對應(yīng)到SJA1000的ad4~ad0地址線,ad7~ad5三位地址線為0。M模塊高位a7~a6兩條地址線用于邏輯譯碼,使得不同的片選線有效從而選中相應(yīng)的SJA1000;3)完成在SJA1000產(chǎn)生中斷后,將中斷傳給上層處理器。本模塊采用的是4通道中斷線與的方式,任何一個CAN控制器產(chǎn)生中斷都將引起處理器的中斷響應(yīng),若4個CAN控制器同時產(chǎn)生中斷,會從通道0到通道3依次查詢中斷,采取先查詢先處理的原則。因為沒有被查詢的通道其中斷寄存器內(nèi)容不會改變,所以不會造成中斷丟失的情況。由于本設(shè)計對邏輯資源要求較低,且由于M模塊板卡尺寸固定布局有限,為了節(jié)省板卡空間和簡化電路設(shè)計,本模塊采用CPLD作為接口轉(zhuǎn)換器件。本模塊選擇了Altera公司MAX7000系列的EMP7128STC100。該芯片具有128個宏單元,84個用戶I/O管腳,管腳間延遲快至10ns,系統(tǒng)內(nèi)可編程,另外,該芯片采用5V單電源供電,可實現(xiàn)5V電壓輸出,這些性能基本滿足板卡設(shè)計的考慮。CPLD的全局時鐘采用和SJA1000芯片時鐘一樣的頻率16MHZ,由晶振統(tǒng)一輸出,并通過時鐘緩沖芯片SN74S244JB扇出。通過以上分析,得出模塊的硬件原理框圖如圖3所示,由于篇幅有限,只給出1個CAN通道的硬件連接圖,其它3個通道的電路設(shè)計類似。CPLD接口轉(zhuǎn)換部分的固件使用Verilog設(shè)計,通過有限狀態(tài)機的方式加以實現(xiàn),如圖4所示。狀態(tài)機總共有5個狀態(tài):S1~S5。1)S1為空閑狀態(tài),在此狀態(tài)下M模塊接口信號與CAN控制器接口信號均處于無效狀態(tài),沒有讀寫周期發(fā)生;2)S2為讀寫開始狀態(tài),在此期間,CAN接口的地址選通信號ale變?yōu)橛行?其地址數(shù)據(jù)復(fù)用線傳送M模塊地址信號;3)S3為地址鎖存狀態(tài),ale失效,SJA1000通過ale的下降沿把地址信號鎖存起來;4)S4為數(shù)據(jù)有效狀態(tài),根據(jù)M模塊接口的write_n信號使能CAN接口的讀寫信號,同時對M模塊地址線進行譯碼選通相應(yīng)的片選線cs_n0/1/2/3,數(shù)據(jù)開始在對應(yīng)的通道上傳輸,如果是讀操作,將M模塊的數(shù)據(jù)線輸出接上CAN接口的數(shù)據(jù)輸入,如果是寫操作,M模塊的數(shù)據(jù)輸入接上CAN接口的數(shù)據(jù)輸出;5)S5為接口應(yīng)答狀態(tài),此時CAN接口完成數(shù)據(jù)讀寫,其讀寫信號失效,并且驅(qū)動M模塊接口的數(shù)據(jù)應(yīng)答信號有效,等待信號握手成功。復(fù)位后,狀態(tài)機處于S1空閑狀態(tài),M模塊接口的片選信號有效時表示上層處理器發(fā)起了讀寫,在時鐘沿到來后即進入讀寫開始狀態(tài)S2;在16MHZ時鐘的作用下,單周期信號變化時間可達62.5ns,可滿足SJA1000接口讀寫時信號的時序變換要求,因此,在時鐘沿到來時,由S2讀寫開始狀態(tài)變換到S5接口應(yīng)答狀態(tài)都是無條件跳轉(zhuǎn);而在S5接口應(yīng)答狀態(tài)時,由于M模塊片選信號cs_n與數(shù)據(jù)應(yīng)答信號dtack_n握手成功后才代表本次讀寫的結(jié)束,因此等待握手后片選信號無效再跳回S1空閑狀態(tài),至此,狀態(tài)機完成了循環(huán)。3軟件的基本信息為了實現(xiàn)本模塊CAN總線通信的功能,需要在硬件的基礎(chǔ)上再進行相應(yīng)的軟件設(shè)計。本模塊4通道之間相互獨立,通道之間只是讀寫寄存器時相應(yīng)偏移地址的差別,每個通道的軟件設(shè)計思想是一致的,本文下面以其中一通道為例進行說明。本模塊工作于VME總線控制系統(tǒng)中,VME計算機使用的是ARM處理器,操作系統(tǒng)為嵌入式Linux,本模塊的軟件程序在該系統(tǒng)下的C語言開發(fā)環(huán)境下進行設(shè)計,并通過armelf-gcc交叉編譯器生成可執(zhí)行文件。針對CAN總線通信時的需求,在系統(tǒng)的VME總線讀寫驅(qū)動和中斷驅(qū)動的基礎(chǔ)上,軟件設(shè)計部分主要包括3大部分:CAN通道初始化程序、數(shù)據(jù)接收程序和數(shù)據(jù)發(fā)送程序的設(shè)計,利用這3部分就能編寫出CAN總線通信的一般應(yīng)用程序。3.1做好相關(guān)準(zhǔn)備工作CAN通道初始化程序主要是實現(xiàn)SJA1000控制器相關(guān)寄存器的初始化,將硬件配置到用戶需要的模式和狀態(tài),為數(shù)據(jù)接收和發(fā)送做好相關(guān)準(zhǔn)備。CAN通道初始化流程如圖5所示,關(guān)閉中斷后,設(shè)置模式寄存器的復(fù)位模式位,在該模式下進行SJA1000的初始化操作,依次包括:設(shè)置時鐘分頻器確定CAN模式、配置接收濾波器、設(shè)置波特率參數(shù)以及SJA1000的輸出模式等,完成一系列寄存器初始設(shè)置后,進入工作模式,并且開放中斷,SJA1000的初始化工作完成,可以進入數(shù)據(jù)接收和發(fā)送狀態(tài)。3.2中斷服務(wù)程序數(shù)據(jù)接收程序負(fù)責(zé)完成CAN總線數(shù)據(jù)到CAN控制器的接收工作,這部分可能需要對接收溢出、錯誤等異常情況進行處理,采用中斷方式實現(xiàn)。SJA1000收到數(shù)據(jù)產(chǎn)生相應(yīng)中斷后,即進入中斷服務(wù)程序,其設(shè)計流程如圖6所示,首先關(guān)閉中斷,讀中斷寄存器確認(rèn)是否為接收中斷,如果不是則繼續(xù)執(zhí)行其它任務(wù),如果是則進一步判斷接收緩沖區(qū)是否產(chǎn)生數(shù)據(jù)溢出,如果溢出則進行數(shù)據(jù)溢出相關(guān)處理,否則讀取接收緩沖區(qū)中收到的CAN總線數(shù)據(jù),讀取結(jié)束后釋放接收緩沖區(qū)以便下一次數(shù)據(jù)接收。每個通道的接收中斷處理流程一致,只是進入中斷后按照先后順序判斷,先判斷的通道先處理。3.3查詢方式實現(xiàn)數(shù)據(jù)發(fā)送程序負(fù)責(zé)將報文發(fā)送到CAN總線,這部分相對數(shù)據(jù)接收程序較簡單,可采用軟件查詢的方式實現(xiàn)。如圖7所示,通過查詢SJA1000的狀態(tài)寄存器,等待發(fā)送緩沖器為空后將發(fā)送節(jié)點的幀信息和ID填入幀頭,將待發(fā)送數(shù)據(jù)填入幀數(shù)據(jù)段,組合成一幀報文后寫入發(fā)送緩沖區(qū),然后設(shè)置SJA1000的發(fā)送請求位,即可啟動報文的發(fā)送。4測試結(jié)果及分析完成軟硬件設(shè)計后,需進行實驗測試才能保證各部分的正確性。將本模塊通過M模塊載板搭在VME系統(tǒng)中,該系統(tǒng)VME機箱中有VME控制器模塊,編寫好的軟件程序?qū)鞯皆撃K的處理器中,實現(xiàn)對CAN通信模塊控制;與本模塊進行通信的測試卡為周立功公司CANET-4E-U,該測試卡為4通道CAN接口,通過LAN口與計算機相連,操作計算機端的控制面板即可控制CAN通信。該測試卡與本模塊建立起4個獨立的CAN通信網(wǎng)絡(luò),各通道之間相互獨立,測試結(jié)構(gòu)如圖8所示。進行實驗設(shè)置時,根據(jù)M模塊接口設(shè)計要求,M模塊按照A08,D08的要求進行軟件配置以實現(xiàn)對SJA1000各個寄存器的正確讀寫,中斷方式采取INTA的模式。為了驗證CAN接口的功能特性,各通道與CAN接口卡以CAN2.0B協(xié)議進行收發(fā)通信,通信數(shù)據(jù)為“01234567”,幀ID遞增,M模塊的收發(fā)數(shù)據(jù)信息可在測試平臺的顯示器上打印,CAN接口卡的運行信息在其對應(yīng)的操作面板中顯示;同時為了驗證通訊距離是否滿足要求,可將模塊與測試卡通過長度為12米的電纜連接進行通訊;另外,可在軟件層通過命令修改通訊波特率。本模塊的測試項目及測試結(jié)果如表1所示。從表1可以看出,對于數(shù)據(jù)發(fā)送和接收而言,在各通道以一定波特率每隔10ms發(fā)送一幀數(shù)據(jù)以及測試卡給本模塊各通道每隔10ms發(fā)送一幀數(shù)據(jù)的情況下,本模塊連續(xù)工作1個小時沒有出現(xiàn)數(shù)據(jù)亂碼或者數(shù)據(jù)丟失的情況,說明本模塊能夠?qū)崿F(xiàn)4通道CAN2.0B協(xié)議的基本數(shù)據(jù)收發(fā)功能,實現(xiàn)了模塊的基本通信需求;同時,模塊在3種波特率下均工作無誤,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商務(wù)中介費合同協(xié)議
- 商業(yè)設(shè)計規(guī)劃合同協(xié)議
- 快遞分揀員合同協(xié)議
- 商業(yè)投資合同協(xié)議格式
- 商務(wù)定制酒水合同協(xié)議
- 榆林書畫買賣合同協(xié)議
- 2025購銷合同范本(16篇)
- 快餐店招人合同協(xié)議
- 品牌免責(zé)協(xié)議書范本
- 售賣景觀苗木合同協(xié)議
- 《單軸面筋脫水機設(shè)計報告(論文)》
- 內(nèi)分泌系統(tǒng) 腎上腺 (人體解剖生理學(xué)課件)
- GPS靜態(tài)數(shù)據(jù)觀測記錄表
- 山西省城鎮(zhèn)教師支援農(nóng)村教育工作登記表
- 軟件項目周報模板
- 著名中醫(yī)婦科 夏桂成教授補腎調(diào)周法
- VSM(價值流圖中文)課件
- 考古發(fā)掘中文物的采集與保存課件
- 人工氣道的護理劉亞課件
- 專業(yè)技術(shù)人員
- 拌和場安全檢查表
評論
0/150
提交評論