《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > CAN適配卡發(fā)電機(jī)狀態(tài)監(jiān)測(cè)儀中的設(shè)計(jì)方案
CAN適配卡發(fā)電機(jī)狀態(tài)監(jiān)測(cè)儀中的設(shè)計(jì)方案
摘要: 文中介紹了發(fā)電機(jī)狀態(tài)監(jiān)測(cè)儀中CAN智能適配卡的功能和硬件組成,針對(duì)ISA和哼單片機(jī)同時(shí)對(duì)雙口RAM讀寫(xiě)數(shù)據(jù)時(shí)的仲裁問(wèn)題,提出了一種硬件判優(yōu)的實(shí)現(xiàn)方法,并對(duì)適配卡的軟件設(shè)計(jì)進(jìn)行了總體的闡述。
Abstract:
Key words :

CAN(Controller Area Network)控制局域網(wǎng)絡(luò)是一種串行通信網(wǎng)絡(luò)。它采用了許多新技術(shù)和獨(dú)特的設(shè)計(jì),因而使其在可靠性、實(shí)時(shí)性和靈活性方面具有突出的優(yōu)點(diǎn)。這些卓越的性能使CAN總線得以在全球范圍內(nèi)一直保持高速發(fā)展。考慮到CAN總線的成長(zhǎng)性及許多單片機(jī)中集成有CAN總線控制器,且CAN總線專用控制器IC術(shù)易從市場(chǎng)上得到,因此,在筆者設(shè)計(jì)的發(fā)電機(jī)狀態(tài)監(jiān)測(cè)儀中采用CAN總線技術(shù)。

1 CAN總線系統(tǒng)的組成模式

基于現(xiàn)場(chǎng)總線的發(fā)電機(jī)狀態(tài)監(jiān)測(cè)儀由智能數(shù)據(jù)采集模塊、工控機(jī)(IPC)、CAN總線三部分組成。其系統(tǒng)結(jié)構(gòu)如圖1所示。每個(gè)模塊通過(guò)CAN總線與一臺(tái)工控機(jī)系統(tǒng)。工控機(jī)的主要功能是對(duì)智能數(shù)據(jù)采集模塊的參數(shù)進(jìn)行設(shè)置,并通過(guò)現(xiàn)場(chǎng)總線網(wǎng)絡(luò)實(shí)時(shí)獲取智能數(shù)據(jù)采集模塊的數(shù)據(jù),如發(fā)電機(jī)事件記錄、故障錄波;監(jiān)測(cè)數(shù)據(jù)的實(shí)時(shí)顯示、趨勢(shì)分析、異常報(bào)警和完成報(bào)表輸出等功能。CAN總線部分主要是由CAN總線適配卡、通訊介質(zhì)以及相應(yīng)的通訊軟件構(gòu)成。

2 CAN智能適配卡的硬件結(jié)構(gòu)

CAN總線的卓越性能為發(fā)電機(jī)狀態(tài)監(jiān)測(cè)系統(tǒng)的高速數(shù)據(jù)通訊提供了保障,但很多工業(yè)PC機(jī)并不帶有CAN總線接口,為了在IPC上擴(kuò)展CAN總線的監(jiān)控和管理功能,筆者設(shè)計(jì)了一塊適配卡插隊(duì)IPC的擴(kuò)展插槽內(nèi),以完成CAN接口與IPC的擴(kuò)展功能。

CAN總線PC適配卡的硬件電路如圖2所示,它主要包括89C52單片機(jī)(內(nèi)含8K E2PROM、256字節(jié)RAM)、地址譯碼與中斷信號(hào)控制邏輯電路EPM7128S、共享存儲(chǔ)器雙口RAM(IDT7132)、CAN控制器SJA1000芯片和光電隔離電路(6N137)以及CAN驅(qū)動(dòng)器82C520等部分組成。

要實(shí)現(xiàn)PC機(jī)和CAN控制器之間的數(shù)據(jù)傳送,必須在PC機(jī)和適與卡上的MPC之間建立起雙向的數(shù)據(jù)交換通道。通過(guò)ISA總線實(shí)現(xiàn)單片機(jī)系統(tǒng)與主機(jī)之間交換數(shù)據(jù)有以下兩種實(shí)現(xiàn)方法:一是靜態(tài)數(shù)據(jù)傳送,這種方法采用并行接口器件(如8255)或鎖存器(如74LS373)等構(gòu)成一字節(jié)深度的FIFO。該方法較為簡(jiǎn)單,但一次傳輸?shù)臄?shù)據(jù)量小,因而只適應(yīng)數(shù)據(jù)量小、速度要求不高的場(chǎng)合;二是共用單片機(jī)系統(tǒng)外部數(shù)據(jù)存儲(chǔ)器。此時(shí)可直接采用集成雙端口RAM或在通用RAM加上一些控制邏輯組成雙口RAM電路。集成雙口RAM是一種性能優(yōu)良的快速快通器件,適用于多CPU分布式系統(tǒng)及高速數(shù)字系統(tǒng)中。它提供了兩路完全獨(dú)立的端口,每個(gè)端口都有完整的地址、數(shù)據(jù)和控制線。對(duì)器件的使用者而言,它與一般RAM并無(wú)大的區(qū)別,只有在兩邊同時(shí)讀寫(xiě)同一地址單元時(shí),才發(fā)生爭(zhēng)用現(xiàn)象。利用雙口RAM提供指示信號(hào),采用適當(dāng)?shù)耐ㄐ乓?guī)則就可避免爭(zhēng)用,以實(shí)現(xiàn)快速數(shù)據(jù)的交換。集成雙口RAM不僅易于實(shí)現(xiàn),而且價(jià)格也不高。CAN信號(hào)傳輸采用短幀結(jié)構(gòu)(8個(gè)字節(jié)),適配卡對(duì)雙口RAM的容量要求并不大,故可選用IDT7130、IDT7132、IDT71231等。本文選用2k×8位的帶忙信號(hào)BUSY的IDT7132。CAN通信控制器選用Philips公司生產(chǎn)的能支持CAN2.0B協(xié)議并與82C200完全兼容的SJA1000,如把它視為存儲(chǔ)器映射的寄存器,則易于與89C52接口。為增強(qiáng)CAN總線的差動(dòng)發(fā)送和接收能力,本設(shè)計(jì)采用了CAN總線收發(fā)接口電路82C250。在SJA1000與從機(jī)的82C250之間接入光電耦合器可增強(qiáng)系統(tǒng)的抗干擾能力。光耦可采用高速光耦6N137。光耦兩側(cè)應(yīng)用采用DC-DC隔離電源,可選用力源公司生產(chǎn)的PS250DC5D5S。

3 伸裁方式

雙口RAM通信方式的關(guān)鍵是處理好爭(zhēng)用現(xiàn)象,避免因此而產(chǎn)生的讀寫(xiě)錯(cuò)誤。IDT7132能夠提供硬件判優(yōu)方式,并可利用BUSY引腳的信號(hào)來(lái)提高系統(tǒng)的靈活性。在圖2的硬件電路中,由于IDT7132內(nèi)含硬件判優(yōu)電路且兩邊端口都有BUSY引腳。因此為兩端口爭(zhēng)用同一地址單元時(shí),其片內(nèi)硬件電路可根據(jù)兩邊的地址、片選以及讀寫(xiě)信號(hào)到達(dá)選后順序來(lái)裁決哪個(gè)端口有使用權(quán)。

由此可知,BUSY信號(hào)可直接至支持插入等待時(shí)序的CPU如80C196的READY引腳,而無(wú)需軟件支持。在本卡中,由于89C52沒(méi)有READY信號(hào),因而在89C52發(fā)出讀寫(xiě)IDT7132命令時(shí)將鎖存BUSYR信號(hào),而只需讀P1.6口的值就可判斷剛才對(duì)IDT7132讀寫(xiě)時(shí)是否存在沖突。當(dāng)P1.6的值為1時(shí),剛才詢門(mén)不存在沖突;當(dāng)1.6的值為0時(shí),剛才詢問(wèn)存在沖公安廳。此時(shí)要重發(fā)讀寫(xiě)IDT7132的命令。由于ISA總線沒(méi)有READY信號(hào),也沒(méi)有通用的I/O引腳,因而可將來(lái)自IDT7132的BUSYL信號(hào)接至數(shù)據(jù)線的最低位D0。但因?yàn)槌瞬樵傿USYL引腳電平時(shí)外,BUSYL不應(yīng)接到D0,因而應(yīng)采用三態(tài)門(mén)74L125。BUSYL接三態(tài)門(mén)的輸入端,三態(tài)門(mén)輸出端接ISA總線數(shù)據(jù)線D0位,其門(mén)控信號(hào)由A9~A5產(chǎn)生,故將占用ISA總線一個(gè)I/O端口。設(shè)計(jì)時(shí)應(yīng)該選用一個(gè)空閑的端口號(hào),這里選用330H(雙口RAM側(cè),PC機(jī)則需換碼),即將A9~A5譯碼為11001.具體電路如圖3所示。

4 適配卡的軟件設(shè)計(jì)

適配卡主要用來(lái)承擔(dān)上位計(jì)算機(jī)和CAN節(jié)點(diǎn)之間的數(shù)據(jù)轉(zhuǎn)發(fā)任務(wù),

其軟件設(shè)計(jì)也包括兩部分:第一部分是PC機(jī)端的應(yīng)用程序接口(API)函數(shù),負(fù)責(zé)完成PC機(jī)端與雙口RAM之間的通信,該部分可以采用可視化的編程工具如C++Builder編寫(xiě)。PC機(jī)端軟件功能主要包括向適配卡上的雙口RAM發(fā)送控制命令、數(shù)據(jù)命令和請(qǐng)求數(shù)據(jù)命令,還將接收到的數(shù)據(jù)進(jìn)行后處理(如,顯示、報(bào)表等);第二部分是卡上單片機(jī)端的程序設(shè)計(jì),負(fù)責(zé)單片機(jī)與雙口RAM以主導(dǎo)CAN控制器之間的通信,該部分可以采用匯編語(yǔ)言ASM51或Franklin C51編寫(xiě).軟件設(shè)計(jì)的主要任務(wù)是向CAN控制器轉(zhuǎn)發(fā)來(lái)自PC機(jī)的命令,并由CAN控制器進(jìn)一步轉(zhuǎn)發(fā)至CAN節(jié)點(diǎn);同時(shí),將CAN控制器接收的來(lái)自CAN節(jié)點(diǎn)的數(shù)據(jù)、狀態(tài)信息送到雙口RAM。

5 需要說(shuō)明的問(wèn)題

CAN的協(xié)議規(guī)范(CAN Specification 2.0A/B)只是一個(gè)低層的規(guī)范。因而還需要一個(gè)高層/應(yīng)用層的協(xié)議,CAN的能力是由高層協(xié)議來(lái)選定和限制的。目前國(guó)際上CAN的應(yīng)用層協(xié)議很多,如DeviceNet、CANopen、CANKingdom等,但用戶可以定制更簡(jiǎn)單的應(yīng)用層協(xié)議。應(yīng)用層協(xié)議的任務(wù)一方面是對(duì)將要發(fā)送的數(shù)據(jù)進(jìn)行分類、拆卸、合并,并確定發(fā)送對(duì)象,然后根據(jù)CAN的數(shù)據(jù)鏈路層協(xié)議規(guī)范填寫(xiě)CAN的各個(gè)信息幀。另一方面是解釋接收到的數(shù)據(jù)的具體含義并對(duì)其進(jìn)行相應(yīng)的處理。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。