版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于ARM處理器的CAN-Ethernet通信模塊實現(xiàn) 近20 年來工業(yè)測控系統(tǒng)發(fā)展的趨勢是:分散控制和集中管理、標準化和開放性。工業(yè)測控系統(tǒng)從傳統(tǒng)的集中測量控制系統(tǒng)轉(zhuǎn)向網(wǎng)絡化的集散控制系統(tǒng)。隨著現(xiàn)場總線技術高速發(fā)展和標準化程度不斷提高,以現(xiàn)場總線技術為基礎的開放型集散測控系統(tǒng)現(xiàn)場總線測控系統(tǒng)得到了廣泛的應用。同時,以太網(wǎng)的應用也迅速向工業(yè)測控系統(tǒng)滲透,在工業(yè)自動化應用中異軍突起。 這種趨勢的出現(xiàn)與計算機技術、信息技術、網(wǎng)絡通信技術的高速發(fā)展相關?,F(xiàn)代工業(yè)系統(tǒng)信息交換的需求也已經(jīng)從管理層內(nèi)部迅速覆蓋到控制、現(xiàn)場
2、設備等各個層次,連接上層網(wǎng)絡和現(xiàn)場總線的通信設備成為工廠自動化系統(tǒng)中的關鍵設備之一。CAN-Ethernet通信模塊,是一種直接連接以太網(wǎng)和CAN現(xiàn)場總線的設備,有效解決了控制系統(tǒng)中現(xiàn)場總線和上層信息管理層的互聯(lián)問題,使自動化系統(tǒng)中的信息交換可以深入到現(xiàn)場設備一級。 1 CAN 總線和以太網(wǎng)的連接 現(xiàn)有的CAN 總線到以太網(wǎng)的通信實現(xiàn)方案中,采用較多的是使用一臺連接以太網(wǎng)的計算機,在計算機中安裝一塊內(nèi)置式CAN通信板卡;或者通過計算機并行和串行接口外接CAN 的通信模塊。這種方法有一定局限性,例如,使用計算機體積大,成本高;計算機故障后的重啟速度慢,這可能嚴重影響系統(tǒng)的工作。采用基于ARM微處
3、理器的單板機系統(tǒng)建立CAN-Ethernet 通信模塊,可以很好地解決上述問題,降低系統(tǒng)的成本,提高其性能。CAN-Ethernet通信模塊連接以太網(wǎng)和CAN 總線的結構如圖1 所示。在以太網(wǎng)和CAN 總線之間,可以掛接一個通信模塊連接兩種網(wǎng)絡,也可以使用多個通信模塊形成多個通路。對于第二種情況,以太網(wǎng)上的計算機可以通過指定IP地址和上層協(xié)議的端口選擇通路。 圖1 通過通信模塊連接以太網(wǎng)和CAN 總線 2 通信模塊的硬件設計 信模塊的硬件核心采用高性能的ARM處理器S3C44B0x。它是一種精簡指令處理器,可以在32位指令字的ARM模式下和16位指令字的Thumb模式下工作,設計者可以根據(jù)需要
4、在性能和代碼大小之間進行折衷;片內(nèi)有8KB的高速靜態(tài)RAM,既可以作為高速緩存,也可以作為片內(nèi)存儲器使用;片內(nèi)外設包括異步和同步串行接口、I2C接口、LCD控制器及接口、實時時鐘等。ARM處理器還具有低能耗和高性價比,非常適用于構建性能較高的嵌入式系統(tǒng)。 通信模塊使用2片39VF040芯片,位擴展后組成512K/16bit共1MB的Flash ROM作為程序和配置數(shù)據(jù)的存儲空間,使用1片62LV25616芯片組成256K/16bit 共512B的靜態(tài)隨機存儲器。CAN總線通信控制芯片選用了Philips公司的SJA1000T,它是一種獨立的CAN 總線通信控制器,僅需要CPU給出必要的指令,控
5、制器就可以自動完成鏈路層以下的收發(fā)工作,并通知CPU總線的工作狀態(tài)。以太網(wǎng)通信控制芯片采用了臺灣Realtek公司的RTL8019as,它是一種ISA 接口的10Mb/s以太網(wǎng)卡芯片,內(nèi)部包含了以太網(wǎng)媒體訪問控制和物理層驅(qū)動,并帶有16KB的片上緩沖RAM。 2. 1 處理器和5 V 系統(tǒng)數(shù)據(jù)線的連接 系統(tǒng)中的處理器S3C44B0x 和存儲器芯片都使用3.3 V 的IO電壓,CAN總線接口、以太網(wǎng)接口則使用5V的工作電壓。 S3C44B0x 的數(shù)據(jù)、地址和控制信號線可以直接驅(qū)動這些外圍電路芯片(參考S3C44B0x、SJA1000、RTL8019as 數(shù)據(jù)手冊) ,但是外圍電路芯片輸出的高電平
6、可能損壞處理器和直接掛接在處理器數(shù)據(jù)線上的其他芯片。因此,數(shù)據(jù)線上應該使用總線轉(zhuǎn)換器進行3.3/5V電平轉(zhuǎn)換。系統(tǒng)選用了兼容3.3 V和5V的信號電平的雙向總線收發(fā)器LCX245芯片。LCX245 的控制信號包括方向控制端DIR(0 :B A ,1 :A B) 和使能控制端OE(0 :接通,1 :隔斷) ,這些控制信號將使用GAL芯片產(chǎn)生。圖2 為系統(tǒng)的硬件連接示意圖。 圖2 系統(tǒng)的硬件連接示意圖 GAL 芯片選用GAL16V8D-15LP ,它的傳播延遲時間為15ns ,反饋延遲時間為7ns ,適于較高速度的工作。除了產(chǎn)生總線收發(fā)器芯片的控制信號外,同一片GAL 還用來產(chǎn)生SJA1000 需
7、要的控制信號。根據(jù)處理器S3C44B0x 的輸出信號, 包括為SJA1000分配的地址組選通信號nGCS3和RTL8019分配的地址組選通信號nGCS4、讀寫信號線nOE和nWE,可以產(chǎn)生總線收發(fā)器LCX245所需要的DIR和OE信號,各信號如圖3 所示。 圖3 LCX245 控制信號的產(chǎn)生 nGCSx 是處理器的地址組選通信號,S3C44B0x 將外部地址空間從地址0 開始,每32M劃分為一個組(Bank ) ,外部尋址時地址線A0 A24 輸出組內(nèi)地址,該地址所在的組的組選通信號同時有效。圖中虛線代表寫操作時的DIR 信號,實線為讀操作的信號。從圖中可以得到使用ABEL 語言描寫的的信號生
8、成邏輯式為: OE = (nOE &nWE) # (nGCS3 &nGCS4 &nGCS5) ; DIR = nOE # (nGCS3 &nGCS4 &nGCS5) ; 但是為了使系統(tǒng)更加穩(wěn)定地工作,應保證OE 信號有效時DIR 信號不發(fā)生變化,也就是說進行讀操作時圖中OE 低電平脈沖的前沿應晚于DIR ,后沿應早于DIR ,這樣將出現(xiàn)反饋邏輯,可以使用類似于同步時序電路的設計方法設計。圖4 是OE 信號和DIR 信號的次態(tài)卡諾圖,次態(tài)符合上述要
9、求,并且在輸入一定的狀態(tài)下,OE 信號和DIR 信號總是每次改變一個,逐次進入最后的穩(wěn)態(tài)狀態(tài)(粗體字表示) 。圖中“×”表示不會出現(xiàn)的輸入狀態(tài)。 圖4 OE 和DIR 次態(tài) 卡諾圖 根據(jù)卡諾圖重新寫出的次態(tài)邏輯產(chǎn)生式,消除單獨輸入(包括OE 和DIR 的當前狀態(tài)) 變化可能引起的競爭- 冒險現(xiàn)象后為: OEn = (nOE &nWE) # (nOE & ! DIR) # (nWE &DIR) # (nGCS3 &nGCS4 &nGCS5) ; /DIRn = ( ! OE &DIR) # (nOE &DIR) # (nOE &a
10、mp;OE) # (nGCS3 & nGCS4 &nGCS5) ; 編譯GAL 邏輯時應嚴格按照邏輯式生成與或邏輯。 2. 2 CAN 總線通信控制芯片SJA1000 的讀寫 CAN總線通信控制芯片SJA1000 沒有提供單獨的地址線,而使用可以與Intel 和Motorola系列微控制器兼容的分時復用地址/ 數(shù)據(jù)線。在一個讀寫周期內(nèi),微控制器首先輸出操作地址并使地址鎖存信號ALE 有效,SJA1000 在ALE 信號的下降沿將操作地址鎖在片內(nèi);之后微處理器發(fā)出讀寫信號進行數(shù)據(jù)傳輸。但S3C44B0x 的數(shù)據(jù)線和地址線是分離的,對SJA1000 的讀寫操作需要模擬微控制器,先在
11、數(shù)據(jù)線上寫一個操作地址,并模擬產(chǎn)生一個ALE 信號鎖存這個地址,之后進行正常的讀寫操作。系統(tǒng)使用地址線ADDR0 區(qū)分地址傳輸和數(shù)據(jù)傳輸:寫奇地址時,不選通SJA1000 芯片,但給出一個有效的模擬ALE 信號;讀寫偶地址時,選通SJA1000 讀寫數(shù)據(jù)。另外,系統(tǒng)同時有兩路CAN 總線接口,讀寫操作根據(jù)地址線ADDR1 區(qū)分兩個SJA1000 芯片,兩個片選信號和ALE 信號都要通過GAL 芯片產(chǎn)生,各信號如圖5所示。 圖5 SJA1000 控制信號的產(chǎn)生 圖中虛線是向SJA1000 傳輸和鎖存地址的過程,實線是讀寫操作的過程。用ABEL 語言書寫的各信號產(chǎn)生邏輯式為: CAN-CS = n
12、GCS4 # ADDR0 ; ALE = ! nWE &ADDR0 & ! nGCS4 ; 對SJA1000 的操作地址如下:地址鎖存向0x08000001端口寫地址;數(shù)據(jù)讀寫通過地址0x08000000。 3 通信模塊的軟件設計 通信模塊和CAN 總線上的設備節(jié)點之間直接通過SJA1000收發(fā)CAN 總線報文進行通信,報文中的數(shù)據(jù)格式可以是基于CAN 總線的上層標準協(xié)議,也可以由用戶定義。為了方便與以太網(wǎng)上計算機的通信,CAN-Ethernet 通信模塊在以太網(wǎng)一端使用UDP協(xié)議,這樣,計算機上的軟件可以使用操作系統(tǒng)提供的網(wǎng)絡訪問服務。 每一個CAN-Ethernet 通信模
13、塊需要設定局域網(wǎng)內(nèi)一個惟一的IP地址,通過固定的UDP端口和計算機通信。模塊和計算機之間既可以使用對單點IP的通信,也可以在UDP端口發(fā)送廣播報文。在以太網(wǎng)一端,通信模塊接收到UDP 報文后,將其中的信息組織成CAN 總線報文發(fā)往CAN 總線;在CAN 總線一端,通信模塊接收報文標識能夠通過本節(jié)點接收碼和接收掩碼設置的CAN 總線報文,并封裝為UDP 報文,轉(zhuǎn)發(fā)到以太網(wǎng)上。各節(jié)點IP 地址、UDP工作端口和CAN報文接收掩碼等設置在系統(tǒng)初始化時進行。3. 1 通信控制芯片的初始化和收發(fā)操作 對SJA1000T的基本操作如下: 初始化:硬件復位,進入復位方式; 設置為BasicCAN 模式,CD
14、R = 0x08 ;設置波特率控制字BTR0 ,BTR1 ;設置接收碼和接收掩碼ACR、AMR;完成設定,進入工作模式,CR = 0x1E。 發(fā)送:將CAN 總線報文寫入SJA1000T 發(fā)送緩沖區(qū)TX2IDR12 , TXDR18 ;寫發(fā)送命令,CMR = 0x01。 接收:從RXIDR12、RXDR18 讀出CAN 一幀CAN 總線報文;將SJA1000T 的接收緩沖區(qū)窗口滑動到下一幀,CMR =0x04。 RTL8019AS內(nèi)部有頁地址為0x400x79 的256個緩沖頁,每頁256B。這些緩沖頁的一部分作為接收緩沖區(qū),起始頁地址和結束頁地址通過PSTART、PSTOP 寄存器配置,剩余
15、可以作為發(fā)送緩沖區(qū)使用。硬件把接收緩沖區(qū)作為環(huán)形緩沖區(qū)使用,CURR寄存器和BNRY寄存器分別指明緩沖區(qū)中未使用部分的起始和結束頁地址。硬件接收到數(shù)據(jù)后會自動修改CURR 的值,而BNRY需要讀出一幀數(shù)據(jù)后由軟件修改;對RTL8019AS的基本操作如下: 初始化:硬件復位操作,進入停止方式;寫入物理地址到PR0PR5 ,寫入0x00 到多點接收地址寄存器MAR;設置內(nèi)部發(fā)送緩沖區(qū)器起止頁地址到PSTART、PSTOP;寫入當前 頁地址到CURR和頁地址界寄存器BNRY中;進入正常工作方式,CR =0x02。 發(fā)送:將以太網(wǎng)報文載入在RTL8019AS中設置的發(fā)送緩沖區(qū)中;寫發(fā)送起始
16、頁地址到TPSR ,寫發(fā)送內(nèi)容長度到TBCR01 ;寫發(fā)送命令,CMR = 0x1A。 接收:從在RTL8019AS中設置的接收緩存頁中讀出一幀以太網(wǎng)報文;根據(jù)報文長度改變頁地址界限BNRY的值。 3. 2 UDP 和CAN 報文的轉(zhuǎn)換 CAN - Ethernet 通信模塊收到CAN 總線報文時,將整個報文封裝在一幀UDP 報文中;接收到目的端口與自己的工作端口相符的UDP 報文時,取出其中的數(shù)據(jù)段作為一幀CAN 總線報文。以太網(wǎng)報文到CAN 總線報文的具體轉(zhuǎn)換過程如下: 如果接收到的以太網(wǎng)報文包含IP 報文,分解出IP 報文,否則拋棄這幀報文; 如果IP 報文的目的地址匹配,并且包含一幀U
17、DP 報文,分解出UDP 報文,否則拋棄; 如果UDP 報文的目的端口匹配,分解出其中的CAN 總線報文,否則拋棄。 CAN 總線報文到UDP 報文的轉(zhuǎn)換過程是:接收到的CAN 總線報文裝入UDP 報文的數(shù)據(jù)段,計算校驗和,完成UDP報文封裝; 加上IP 報文頭部,計算校驗和,完成IP報文封裝; 加上以太網(wǎng)報文的頭部,報文尾部的校驗和不需要軟件完成,RTL8019AS在發(fā)送時會自動添加。 為了減少在轉(zhuǎn)換過程中的數(shù)據(jù)拷貝,定義了如下數(shù)據(jù)結構。從CAN總線上收到的報文直接放在Frame結構體的can 成員中,并記錄長度,封裝為UDP報文的過程就是填充Frame結構體中其他成員的過程;從以太網(wǎng)上收到
18、的報文逐字節(jié)放入Frame結構體中,CAN 報文就包含在can 成員中。 struct EthHead unsigned char DstPhyAddr6 ; / / 以太網(wǎng)目的地址 unsigned char SrcPhyAddr6 ; / / 以太網(wǎng)源地址 unsigned short Prt ; / / 協(xié)議標識 ; struct IPHead unsigned char VerLen ; / / 版本號和頭長度 unsigned char ServType ; / / 服務類型 unsigned short Len ; / / 長度 unsigned short ID; / / 報文I
19、D unsigned short FlagAndFrag ; / / 標記和分段 unsigned char TTL ; unsigned char Prt ; / / 協(xié)議標識 unsigned short HdChksum; / / 頭校驗和 unsigned char srcIP4 ; / / 源IP 地址 unsigned char dstIP4 ; / / 目的IP 地址 ; struct UDPHead unsigned short srcPort ; / / 源端口號 unsigned short srcPort ; / / 目的端口號 unsigned short Len ; / / 長度 unsigned short Chksum; / / 校驗和 ; struct Frame struct EthHead ethhd ; struct IPHead iphd ; struct UDPHead udphd ; unsigned char can 10 ; / / 放置CAN 報文 short canle
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度養(yǎng)殖場廢棄物資源化利用技術承包合同范本4篇
- 2022版義務教育階段英語課程標準模擬測試卷
- 2025年度整棟醫(yī)療設施出租經(jīng)營合同4篇
- 2025年度存量房交易資金監(jiān)管服務合同范本2篇
- 2024智能健康監(jiān)測設備研發(fā)與生產(chǎn)合同
- 2025別墅庭院園藝景觀植物租賃與養(yǎng)護合同3篇
- 2025年度新能源汽車動力電池回收利用技術合作合同范本3篇
- 2024美容院員工勞動合同及保密協(xié)議
- 2025年度醫(yī)院兒科病房改造與承包運營協(xié)議4篇
- 2025年度床上用品行業(yè)環(huán)保公益活動合作合同3篇
- 搖臂鉆床日常點檢表
- 經(jīng)濟開發(fā)區(qū)擴區(qū)可行性研究報告
- 會計職業(yè)道德課件(完整版)
- 金屬探測器檢查記錄表
- 2022年五年級數(shù)學興趣小組活動記錄
- Q∕GDW 12127-2021 低壓開關柜技術規(guī)范
- 商品房預售合同登記備案表
- 版式設計發(fā)展歷程-ppt課件
- 通信機房蓄電池放電試驗報告
- 病原細菌的分離培養(yǎng)
- EDA課程設計報告書--八音電子琴
評論
0/150
提交評論