摘 要: 針對(duì)微機(jī)并行口在CAN監(jiān)控節(jié)點(diǎn)中的實(shí)際應(yīng)用,詳細(xì)介紹了微機(jī)并行口EPP協(xié)議和CAN監(jiān)控節(jié)點(diǎn)的設(shè)計(jì)。 關(guān)鍵詞: 并行口EPP協(xié)議 CAN總線 CAN總線監(jiān)控節(jié)點(diǎn)SJA1000CAN控制芯片82C250CAN控制器接口芯片 1 增強(qiáng)型并行口EPP協(xié)議 利用微機(jī)的標(biāo)準(zhǔn)串并口進(jìn)行通信、控制和數(shù)據(jù)采集等是微機(jī)應(yīng)用者所關(guān)心的課題。在過去,通常采用標(biāo)準(zhǔn)并行口(SPP)或RS232來進(jìn)行通信、控制和數(shù)據(jù)采集,其速度和靈活性受到了很大的限制。這是因?yàn)镽S232通訊速率較低;而標(biāo)準(zhǔn)并行口(SPP)進(jìn)行數(shù)據(jù)采集時(shí),由于數(shù)據(jù)線是單向的,因而不得不用狀態(tài)線來完成數(shù)據(jù)的輸入,狀態(tài)線可用端口只有5位,最后還得進(jìn)行字節(jié)或字的拼接。這既多花費(fèi)時(shí)間又增加程序的復(fù)雜性,還不能取得較高的數(shù)據(jù)傳輸率。 微機(jī)標(biāo)準(zhǔn)并行口SPP的局限性限制了并行口在高速通信、控制和數(shù)據(jù)采集等方面的進(jìn)一步應(yīng)用。為此,Intel Xicom和Zenith公司發(fā)起制定了EPP(Enhenced Parallel Port)協(xié)議,極大地改善了PC機(jī)并行口的數(shù)據(jù)傳輸能力,使得利用并行口的數(shù)據(jù)傳輸率接近標(biāo)準(zhǔn)PC內(nèi)部ISA總線的傳輸率。應(yīng)用時(shí),需在PC機(jī)的BIOS setup中將并行口設(shè)置成EPP方式。 1.1 EPP協(xié)議的信號(hào)定義 EPP協(xié)議是一種與標(biāo)準(zhǔn)并行口兼容且能完成雙向數(shù)據(jù)傳輸?shù)膮f(xié)議。該協(xié)議定義的并行口更象一個(gè)開放的總線,為用戶提供了更強(qiáng)大功能和更靈活的設(shè)計(jì)手段。設(shè)計(jì)者可以靈活應(yīng)用這些單/雙向信號(hào)以滿足各自的特殊要求。表1列出了EPP信號(hào)的定義及描述。 簡單地,從軟件角度來看,EPP協(xié)議定義的信號(hào)分別對(duì)應(yīng)三個(gè)不同的寄存器。在PC機(jī)中,并行口的基地址為378H,該地址為包含讀入和讀出兩個(gè)寄存器的雙緩沖寄存器,對(duì)應(yīng)AD0…AD7雙向數(shù)據(jù)/地址端口,輸入操作時(shí)使用讀入寄存器;輸出操作時(shí)使用讀出寄存器。單向狀態(tài)端口和單向控制端口的寄存器地址分別為379H和37AH,其定義見表2。 在控制端口中,IRQ ENABLE為中斷允許標(biāo)志位,中斷信號(hào)由狀態(tài)端口的INTR引入;READ ENABLE為數(shù)據(jù)端口讀允許標(biāo)志位,高電平時(shí)將外部信號(hào)寫進(jìn)讀入寄存器378H,低電平時(shí)內(nèi)部數(shù)據(jù)通過讀出寄存器378H向外輸出,這兩個(gè)標(biāo)志位只能通過軟件進(jìn)行設(shè)置。在DOS方式或WINDOWS的DOS窗口下,可通過DEBUG軟件的I(讀)命令和O(寫)命令對(duì)三個(gè)寄存器的狀態(tài)進(jìn)行觀察和改寫: C:\>DEBUG -I 378 ;讀入數(shù)據(jù)/地址寄存器的內(nèi)容 04 ;內(nèi)容為04H -O 378 5A ;向數(shù)據(jù)/地址端口輸出數(shù)據(jù)5AH -I 378 5A ;內(nèi)容變?yōu)?AH -I 379 ;讀入狀態(tài)端口的內(nèi)容 7E ;內(nèi)容為7EH -I 37A ;讀入控制寄存器的內(nèi)容 CC ;內(nèi)容為CCH -O 37A BF;向控制端口輸出BFH -I 37A BF ;內(nèi)容變?yōu)锽FH -O 37A EC ;置位READ ENABLE,外部總線上的數(shù)據(jù)進(jìn)入數(shù)據(jù)/地址寄存器378 -I 378 FF ;外部總線懸浮時(shí)電平為高 1.3 EPP并行口 EPP并行口的端口定義如圖1中DB25所示。在實(shí)際的使用中,由于EPP并行口具有8位雙向數(shù)據(jù)端口、狀態(tài)端口和控制端口,因此,若輔以適當(dāng)?shù)亩x,EPP并行口即可作為8位總線靈活使用。 2 基于EPP的CAN監(jiān)控節(jié)點(diǎn)的設(shè)計(jì) CAN總線是德國Bosch公司為解決現(xiàn)代汽車中眾多的控制與測(cè)試儀器之間的數(shù)據(jù)交換而開發(fā)的一種串行數(shù)據(jù)通信協(xié)議。它是一種多主總線,通信介質(zhì)可以是雙絞線、同軸電纜或光導(dǎo)纖維,通信速率可達(dá)1Mbps,通信距離可達(dá)10km。CAN協(xié)議的一個(gè)最大特點(diǎn)是廢除了傳統(tǒng)的站地址編碼,而代之以對(duì)通信數(shù)據(jù)塊進(jìn)行編碼,使網(wǎng)絡(luò)內(nèi)的節(jié)點(diǎn)個(gè)數(shù)在理論上不受限制。CAN協(xié)議采用CRC校驗(yàn)并可提供相應(yīng)的錯(cuò)誤處理能力,保證了數(shù)據(jù)通信的可靠性。由于CAN卓越的特性、極高的可靠性和獨(dú)特的設(shè)計(jì),特別適合工業(yè)過程監(jiān)控設(shè)備的互連,因此,越來越受到工業(yè)界的重視。 在CAN總線的初期連接調(diào)試中,常常需要監(jiān)測(cè)CAN總線上傳遞的信息,用以判斷CAN總線的工作狀態(tài)。為此,采用PHILIPS SJA1000 CAN控制芯片、PHILIPS 82C250 CAN控制器接口及PC機(jī)并行口EPP工作模式設(shè)計(jì)了一個(gè)CAN總線監(jiān)測(cè)節(jié)點(diǎn),用于接收CAN總線上的信息并在PC顯示屏上顯示;同時(shí),還可通過監(jiān)控節(jié)點(diǎn)向CAN總線發(fā)送信息,便于CAN總線系統(tǒng)設(shè)備的建立與調(diào)試。 2.1 PHILIPS SJA1000與82C250的引腳結(jié)構(gòu) PHILIPS SJA1000和 82C250的引腳結(jié)構(gòu)如圖1所示。 2.2 微機(jī)EPP協(xié)議并行口與SJA1000及82C250的連接及其應(yīng)用 由于微機(jī)并行口在EPP協(xié)議下工作時(shí),有AD0~AD7、INT、WRITE、DATASTB(READ)等信號(hào),就像一個(gè)開放的8位總線,且其傳輸速率達(dá)1Mbps/s,稍加定義及改造即可應(yīng)用于許多I/O控制場(chǎng)合。在CAN監(jiān)控節(jié)點(diǎn)的設(shè)計(jì)中,使用了并行口中的ADO~AD7、 2.3 監(jiān)控節(jié)點(diǎn)的連接和軟件的使用 在設(shè)計(jì)CAN監(jiān)控節(jié)點(diǎn)的過程中,為了方便用戶使用,我們用BORLAND C++編制了DOS界面的應(yīng)用程序,并向用戶提供一個(gè)能向監(jiān)控節(jié)點(diǎn)供電的三通轉(zhuǎn)接板。使用時(shí),在PC機(jī)的BIOS中將并行口設(shè)置為EPP模式,將監(jiān)控節(jié)點(diǎn)插入PC機(jī)并口,再將三通轉(zhuǎn)接板串入CAN總線的連接電纜中,然后用一條普通的串口電纜將監(jiān)控節(jié)點(diǎn)與三通轉(zhuǎn)接板連接起來。 運(yùn)行監(jiān)控軟件CANMonit.EXE,輸入EPP并行口的I/O地址(多為378H),再按所需的通信速率在屏幕右方的表列中查出對(duì)應(yīng)的代碼,并填入對(duì)應(yīng)的空格中,鍵入F10,若監(jiān)控節(jié)點(diǎn)正常,即可進(jìn)入監(jiān)控界面。此時(shí)屏幕從上至下分為3個(gè)部分,各部分的切換用TAB鍵。第一部分是監(jiān)控窗口,用于觀察 CAN總線上的信息,按回車鍵,在ID欄中輸入需要觀察的數(shù)據(jù)的ID號(hào),該數(shù)據(jù)即在監(jiān)控窗口中顯示,監(jiān)控窗口可同時(shí)顯示十路不同ID號(hào)的數(shù)據(jù);第二部分是發(fā)送窗口,按回車鍵,輸入相應(yīng)的ID號(hào)、數(shù)據(jù)長度、數(shù)據(jù)和數(shù)據(jù)發(fā)送的延遲時(shí)間,即可向CAN總線上發(fā)送信息;第三部分是狀態(tài)窗口,在監(jiān)控節(jié)點(diǎn)運(yùn)行過程中,該窗口會(huì)顯示一些相關(guān)信息、特別是一些關(guān)于CAN總線的錯(cuò)誤信息,有助于診斷CAN總線發(fā)生的故障。觀察完畢,使用Q鍵即可終止軟件的運(yùn)行。
1.2 EPP寄存器
、
、
、INTR、RESET信號(hào),其電路原理圖如圖1所示。





