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

求一種CAN適配卡驅(qū)動程序的設(shè)計(jì)方案
如何利用VxWorks操作系統(tǒng)實(shí)現(xiàn)PC/104-CAN適配卡的驅(qū)動系統(tǒng)設(shè)計(jì)
CAN總線分布式系統(tǒng)適配卡和控制單元設(shè)計(jì)
基于USB的CAN適配卡的設(shè)計(jì)與實(shí)現(xiàn)
基于CP2102高速USB2.0-CAN適配卡的設(shè)計(jì)

基于WinCE環(huán)境的CAN適配卡驅(qū)動程序的設(shè)計(jì)與實(shí)現(xiàn)
LSI推出6Gb/s SAS主機(jī)總線適配卡
基于PIC單片機(jī)的RS-232轉(zhuǎn)CAN通信適配卡設(shè)計(jì)

發(fā)電機(jī)狀態(tài)監(jiān)測儀中CAN適配卡的設(shè)計(jì)方案

關(guān)于PCI9052在多功能CAN適配卡中的應(yīng)用研究

CAN總線PC適配卡設(shè)計(jì)

基于WinCE環(huán)境的CAN適配卡驅(qū)動程序的設(shè)計(jì)與實(shí)現(xiàn)
基于單片機(jī)實(shí)現(xiàn)總線控制智能數(shù)據(jù)采集模塊的軟硬件設(shè)計(jì)

基于軟件模擬的SPI端口CAN控制卡的軟硬件設(shè)計(jì)

評論