??? 摘 要: 采用P80C592FFA作為CAN控制芯片,使用CY7C0944PV-AC作為雙端口存儲(chǔ)器,并使用PCA82C250作為CAN控制器接口芯片,設(shè)計(jì)了CAN總線智能適配" title="適配">適配卡,提高了CAN總線適配卡的傳輸能力。針對(duì)CAN總線在特殊環(huán)境下容易受到外界干擾的弱點(diǎn),使用6N137進(jìn)行信號(hào)隔離" title="信號(hào)隔離">信號(hào)隔離,使該適配卡達(dá)到了本安型標(biāo)準(zhǔn)。
??? 關(guān)鍵詞: CAN總線? 智能適配卡" title="智能適配卡">智能適配卡? 信號(hào)隔離
?
??? CAN[1](Controller Area Network)總線最初是由德國BOSCH公司為汽車檢測(cè)與控制系統(tǒng)而設(shè)計(jì)的。由于其顯著的特點(diǎn),其應(yīng)用范圍越來越廣,已擴(kuò)大到過程控制、機(jī)械工業(yè)、紡織機(jī)械、農(nóng)用機(jī)械、機(jī)器人、數(shù)控機(jī)床、醫(yī)療器械及傳感器等領(lǐng)域。目前,在國際上CAN總線已經(jīng)成為控制領(lǐng)域的熱點(diǎn),但CAN總線在礦井下等特殊環(huán)境下的應(yīng)用還沒有進(jìn)行系統(tǒng)的研究。本文針對(duì)礦井下這種特殊環(huán)境設(shè)計(jì)了本安型CAN總線智能節(jié)點(diǎn)適配卡,為CAN總線在礦井下等一些比較惡劣環(huán)境下的應(yīng)用提供了可靠的保證。
1 硬件結(jié)構(gòu)
1.1適配卡的功能
??? CAN總線與PC機(jī)的連接方法有兩種[2~3]:①通過一個(gè)轉(zhuǎn)換器與PC機(jī)的串行口連接。該種方式設(shè)計(jì)簡(jiǎn)單,但數(shù)據(jù)轉(zhuǎn)發(fā)速度較慢。②在PC機(jī)的擴(kuò)展槽里插入一塊適配卡。由于使用適配卡所交換的數(shù)據(jù)量較大,比較適合CAN總線的需求,所以近年來大多使用適配卡的方式。適配卡既可以對(duì)數(shù)據(jù)起到轉(zhuǎn)發(fā)的作用,即收集CAN總線上各個(gè)節(jié)點(diǎn)的數(shù)據(jù),轉(zhuǎn)發(fā)給上位機(jī),并把上位機(jī)的命令和數(shù)據(jù)發(fā)給各節(jié)點(diǎn),也可以完成對(duì)CAN總線上的用戶系統(tǒng)的部分監(jiān)控和管理工作,故又被稱為智能適配卡。它可以減輕上位機(jī)的負(fù)擔(dān),提高系統(tǒng)的實(shí)時(shí)性。這種適配卡需要的硬件條件較高,且需要較多的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。作者研制的就是這種智能適配卡。
1.2 智能適配卡的硬件組成
??? 目前廣泛流行的CAN總線器件分為兩大類:一類是獨(dú)立的CAN控制器,如PHILIPS公司的82c200、SJA1000及Intel公司的82526/82527等;另一類是帶有在片CAN總線的微控制器,如P8xc582、P80C592FFA等。根據(jù)礦井下實(shí)際情況的需要,設(shè)計(jì)了如圖1所示的CAN總線智能適配卡。它采用P80C592FFA作為CAN控制芯片;使用CY7C0944PV-AC作為雙端口存儲(chǔ)器;使用PCA82C250作為CAN控制器接口芯片。硬件電路中使用PCA82C250的目的是為了增大通信距離,提高系統(tǒng)的瞬間抗干擾能力。因?yàn)樵撝悄苓m配卡是在礦井下應(yīng)用,還必須具有防暴功能,因此使用6N137進(jìn)行信號(hào)隔離(如圖2所示)。
?

?

??? 在圖1中,82C250接收總線上所有傳輸?shù)膸?,通過電流和電壓隔離后,傳送到P80C592的CAN模塊,CAN模塊比較接收碼寄存器和幀的ID碼,若相等則接收,并引發(fā)一個(gè)接收中斷。在接收中斷的處理中,P80C592讀取CAN模塊接收緩沖區(qū)中的數(shù)據(jù),把它傳送到CY7C09449的雙口" title="雙口">雙口RAM中。最后PC機(jī)通過PCI總線定時(shí)讀取CY7C09449雙口RAM中的數(shù)據(jù)。中斷申請(qǐng)電路是為保證PC機(jī)和適配卡上的微控制器之間能實(shí)時(shí)響應(yīng)對(duì)方處理要求而設(shè)置的。中斷申請(qǐng)電路由兩個(gè)D觸發(fā)器和一個(gè)用來譯碼的GAL芯片組成。兩邊的工作方式相同。
??? 設(shè)計(jì)中考慮到便于電路調(diào)試和處理整體運(yùn)行時(shí)出現(xiàn)的問題,選擇三種復(fù)位方式[1][5]。其硬件構(gòu)成如圖3所示。
?

??? (1)上電復(fù)位:與PC機(jī)上" title="機(jī)上">機(jī)上電復(fù)位同時(shí)復(fù)位。當(dāng)PC機(jī)通電復(fù)位時(shí),CAN適配卡也同時(shí)復(fù)位。
??? (2)手動(dòng)復(fù)位:當(dāng)調(diào)試中出現(xiàn)問題時(shí),通過手動(dòng)復(fù)位鍵復(fù)位,以便解決調(diào)試中出現(xiàn)的問題。
??? (3)軟件復(fù)位:在程序運(yùn)行中出現(xiàn)問題時(shí),不需要關(guān)掉PC機(jī),只需啟動(dòng)PC機(jī)管理程序中的初始化功能模塊即可,它可通過軟件指令對(duì)CAN適配卡進(jìn)行復(fù)位。
??? 硬件電路設(shè)計(jì)并不很困難,但也要注意一些事項(xiàng),否則會(huì)事倍功半,功虧一簣。
??? (1)地線的設(shè)計(jì)應(yīng)特別注意,為了減少噪聲,模擬信號(hào)的地線和數(shù)字信號(hào)的地線應(yīng)該分開。
??? (2)該適配卡的防暴技術(shù)主要采用電器隔離技術(shù),同時(shí)采用本質(zhì)安全技術(shù),通過抑制電火花和熱效應(yīng)能量來防爆。電器設(shè)備的最大功率不應(yīng)超過25W,對(duì)于5V電源的設(shè)備,它的功率一般要遠(yuǎn)遠(yuǎn)低于25 W。開關(guān)觸電開閉時(shí)的放電也應(yīng)注意,要減少電路的儲(chǔ)能器件(如電感和電容),一般要求最大電容小于5μF,最大電感小于20μH。
2 軟件接口設(shè)計(jì)[4]
??? 接口軟件設(shè)計(jì)包括單片機(jī)上的匯編程序設(shè)計(jì)和PC機(jī)上的設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)。兩者的紐帶是CY7C09449上的雙口RAM。
??? 這個(gè)雙口RAM共有16KB的共享空間0x4000H~0x7FFFH,為了編程方便,把它分成兩部分。0x4000H~0x5FFFH為發(fā)送幀空間,0x6000~0x7FFFH為接收幀空間。0x4E8是主機(jī)對(duì)本地處理器的郵箱HLDATA的地址,0x4F8是本地處理器對(duì)主機(jī)的郵箱LHDATA的地址,如圖4所示。對(duì)于主機(jī),這些地址都是偏移地址,還得加上PCI配置寄存器ABAR0中的值才是真正的物理地址。
?

??? HLDATA和LHDATA的用法分別如圖5和圖6所示。把發(fā)送空間和接收空間設(shè)計(jì)成兩個(gè)循環(huán)隊(duì)列,分別用兩個(gè)指針來控制。發(fā)送空間和接收空間都是8K、13位的地址,指針是它們的高8位,第5位為0。每個(gè)指針空間為32個(gè)字節(jié),每幀10 個(gè)字節(jié),有22 個(gè)字節(jié)是浪費(fèi)的空間。由于已接收幀的地址和欲接收幀的地址不等,所以P80C592就需要發(fā)送幀。主機(jī)每接收一個(gè)幀,已接收幀地址加1,每發(fā)送一個(gè)幀,欲發(fā)送幀地址加1。P80C592每接收一個(gè)幀,欲接收幀地址加1,每發(fā)送一個(gè)幀,已發(fā)送幀地址加1。
?

?

?
??? CAN總線具有許多優(yōu)點(diǎn),尤其是它的實(shí)時(shí)傳輸特性好,受到用戶的歡迎。但它的抗干擾性、防暴性能較差。本文設(shè)計(jì)的CAN總線適配卡使用信號(hào)隔離和本質(zhì)安全技術(shù),很好地解決了這一問題,使CAN總線應(yīng)用范圍更加廣泛,更能適應(yīng)現(xiàn)場(chǎng)的要求。
參考文獻(xiàn)
1 鄔寬明. CAN總線原理與應(yīng)用系統(tǒng)設(shè)計(jì).北京: 北京航空航天大學(xué)出版社,1996(8):34~45
2 蔣建文,林 勇,韓江洪. CAN總線通信協(xié)議的分析和實(shí)現(xiàn).計(jì)算機(jī)工程, 2002(2):219~220
3 成繼勛,歐青立. CAN總線PC智能卡的研制. 自動(dòng)化儀表,1999(7):9~11
4 周鳳余,魯守銀. CAN總線系統(tǒng)智能節(jié)點(diǎn)設(shè)計(jì)與實(shí)現(xiàn). 微計(jì)算機(jī)信息,1999(6):9~10
5 Gianluca Cena,AdrianoValenzano. FastCAN:A High-Performance Enhanced CAN-Like Network .IEEE Transactions on?Industrial Electronics,2000;47(4): 951~952
