作者:汪建平;陶春;周偉
1 CAN總線簡介
CAN(Controller Area Network)總線屬于現場總線的范疇,是一種有效支持分布式控制或實時控制的串行通信網絡。CAN協議目前已納入ISO國際標準(ISO11898),它分為物理層、數據鏈路層和應用層,其中物理層和數據鏈路層協議已經集成在芯片中,可通過硬件自動完成數據的成幀與發送和接收,從而大大減少軟件的工作量,因此,特別適用于工業自動化領域,尤其是那些強調低層監測與控制且要求可靠性高、實時性好的惡劣條件下的工業現場使用。
CAN總線具有以下突出特點:
● 能夠以多主節點方式工作,網絡上任一節點均可設成主節點以其它節點主動發送信息。
●報文傳輸不含目標地址,它以全網廣播為基礎,各個接收站可根據報文中反映的數據性質標識符來過濾報文以決定是否接收。同時可通過報文標識符將報文設定為不同的發送優先級,以滿足不同的實時要求。
●非破壞性總線仲裁和錯誤界定,利用現有的產品,可由控制器自動解決總線沖突和出錯界定,并對用戶完全透明,同時還能區分暫時和永久故障,并可自動關閉故障節點。
●通信距離可達10km(速率5kb/s),速度可達1MB/s(距離40m以內)。
●理論上,CAN總線的網上節點數不受限制,它有2032種不同的報文標識符,但具體數量取決于物理層的承受能力,通常CAN總線上的節點數可達110個。CAN總線系統一般采用總線式網絡拓撲結構,其優點是結構簡單,成本低,系統可靠性高。其總體模式如圖1所示。
2 CAN總線適配卡的功能特點
CAN總線通信適配卡是插在PC機ISA插槽內的智能通訊卡,它可使PC機方便地連接到CAN總線上,其特點如下:
(1)采用高性能的8位微處理器89C52(12MHz),可減輕PC主機的通信負擔,而且可以運行復雜的用戶通信任務。 (2)卡上帶有lkB的高速雙口RAM存儲器,可直接映射到主機內存空間以實現CAN總線與主機PC的高速數據交換,并可設置雙口RAM在ISA總線中的基地址。
(3)采用16MHz CAN控制器SJAl000時,其通訊速率可高達1Mbps。
(4)中斷申請電路能夠保證PC機和適配卡上的微處理器實時處理對方的處理要求。
(5)適配卡上帶有光電隔離,可保護PC機避免由于地環流而造成的損壞,并可增強系統在惡劣環境中使用的可靠性。
(6)為方便系統調試,可用LED指示系統狀態和CAN的接收和發送狀態。
3 CAN總線適配卡的硬件設計
CAN通信適配卡由雙口RAM電路、微控制器電路、CAN通信控制電路三部分組成,其結構框圖如圖2所示。
3.1 雙口RAM及其控制電路
雙口RAM是一種性能優越的快速通信器件,它能提供兩種完全獨立的端口,每個端口都有完整的地址、數據和控制線。對于器件兩邊的使用者CPU而言,它與一般的RAM無多大區別,只有在兩邊同時讀寫同一地址單元時,才會出現競爭現象。在CAN通信適配卡中,通常利用雙口RAM IDT7130來建立雙向數據交換通道,以實現PC機和CAN控制器之間的數據傳送。
PC機與擴展存儲器的接口有兩種方法:一種是把雙口RAM當成外部設備,使用端口I/O指令進行訪問,這種方法一次只能傳送一個字節(或字),因而傳送速度較慢;另一種是內存映像法,即把雙口RAM地址配置于PC機主存儲器的高端(一般為C0000H-DFFFFH),以使PC機像訪問主存儲器一樣訪問雙口RAM,同時使所有能夠訪問主存儲器的指令也可以以同樣的方式訪問雙口RAM。內存映像法可以以字符塊為單位進行傳送,因而可實現快速訪問雙口RAM。正是基于這些優點,在本適配卡設計中采用了內存映射的存儲器尋址方式。
圖3為雙口RAM的控制電路,其訪問原理為:ISA總線共有24條地址線,可尋址16MB存儲空間。地址線A12-A19接到比較器74LS688的P0-P7,比較器的Q0-Q5接一個六位的撥碼開關,Q6、Q7接高電平。74LS688的輸出接可編程邏輯器件GALl6V8。這樣,當P0-7=Q0-7時,74LS688的輸出為低電平,地址選擇有效。另外,通過設置撥碼開關,用戶可以選擇雙口RAM在PC機存儲器中的初始地址。如置撥碼開關為Q0-5=001011,則雙口RAM在ISA總線的初始地址為D0000H。這樣,通過可編程邏輯器件GALl6V8便可將1SA總線的各種信號進行邏輯組合,以形成三個控制信號,從而實現PC機對雙口RAM的訪問。這三個信號為:
P19=P1*P2*P3*P6*P7 RAM片選信號
P18=P1*P2*P3*P6*P7*P5 RAM讀信號
P17=P1*P2*P3*P6*P7*P4 RAM寫信號
3.2微控制器電路
微控制器89C52是ATMEL公司的產品,它與MCS51系列CPU完全兼容,并帶有8k字節的在系統可編程FLASH MEMORY(最多可以擦寫100次),同時帶有256B的片內RAM,因此一般不需要擴展片外ROM。
當89C52與CAN總線通信時,通常需要較大的數據緩沖區,因此該系統中擴展了8kB的片外RAM來滿足通信的需要。
在該適配卡中,有一些數據(如下層CAN節點的數目、CAN通信的初始化參數等)在適配卡斷電以后仍需要保存,因此應擴展一片EEPROM。本卡采用的是一個8k X 8位的非易失性存儲器2864,它的快速讀時間最大為250ns,存儲的數據可以保存10年。如果程序在運行過程中需要對適配卡的通信參數進行重新配置,可通過調用PC機對CAN適配卡參數配置子程序來完成,并可在設置成功的同時將相應的參數存入2864,以備下次適配卡啟動時調用。
考慮到電路調試和系統故障的處理,本卡設計了三種復位方式。其中上電復位方式為在PC機通電時,使CAN適配器也同時復位;在調試出現問題時可通過手動復位鍵復位,以便解決調試中出現的問題;第三種是軟件復位,該方式可通過調用PC機管理程序中的初始化模塊并通過軟件指令對CAN適配卡進行復位。
3.3 CAN通信控制電路
CAN通信控制器選用PHILIPS公司的sJAl000,它具有完成高性能通信協議所要求的全部必要特征,支持CAN協議約定的4種不同幀格式(即數據幀、遠程幀、錯誤幀和超載幀),具有簡單總線連接的SJAl000可完成物理層和數據鏈路層的所有功能,并在與CPU連接時可確保SJAl000以存儲器映像的外圍設備出現。為加強CAN總線的差動發送和接收能力,該電路采用了CAN總線收發接口電路82C250。82C250的引腳8允許選擇高速、斜率控制和待機三種不同的工作方式,并可通過設置撥碼開關切換不同的工作方式。在SJAl000與82C250之間接入光電耦合器可增強系統的抗干擾能力,光耦可采用高速光耦6N137,光耦兩側應采用5V的DC-DC隔離電源。圖4所示是一種CAN通信接口電路。
4 適配卡的軟件設計
適配卡主要承擔的是計算機和CAN節點之間的數據轉發任務,因而其軟件設計也包括兩部分:其一是PC機端的應用程序,用于負責完成PC機和雙口RAM的通信。實際上,運行時需要開發虛擬設備驅動程序(VxD)來完成對雙口RAM的讀寫、對雙口RAM中斷的處理以及和應用程序的通信。其二是卡上單片機端的程序設計,該程序采用FranklinC51編寫,可完成單片機與雙口RAM以及與CAN控制器之間的通信。圖5為該適配卡的簡化程序流程圖。
責任編輯:gt
-
控制器
+關注
關注
112文章
16214瀏覽量
177483 -
CAN總線
+關注
關注
145文章
1937瀏覽量
130640 -
通信網絡
+關注
關注
21文章
2029瀏覽量
51973
發布評論請先 登錄
相關推薦
評論