孟繁江
摘要:本文提出一種新的適配卡設(shè)計方案,采用ISA接口,使用89C52微處理器,SJA1000作為通信控制器,并利用雙口RAM作為PC機與控制器之間的數(shù)據(jù)交換通道,使用EPLD器件作為雙口RAM的控制和中斷信號處理。最后簡要闡述了適配卡的軟件設(shè)計。
關(guān)鍵詞:局域控制網(wǎng) 總線適配卡 設(shè)計
1 概述
現(xiàn)場總線技術(shù)將專用的微處理器置入傳統(tǒng)的測量控制儀表中,使它們各自都具有數(shù)字計算和數(shù)字通信能力,采用可進行簡單連接的雙絞線作為總線,把多個測量控制儀表連接成網(wǎng)絡(luò)系統(tǒng),并按公開、規(guī)范的通信協(xié)議,在現(xiàn)場的多個微機化測量控制設(shè)備之間以及現(xiàn)場儀表與遠程監(jiān)控計算機之間,實現(xiàn)數(shù)據(jù)傳輸與信息交換,形成適應(yīng)各種實際需要的自動控制系統(tǒng)。目前,在變電站綜合自動化系統(tǒng)中CAN總線已有少量應(yīng)用,其中的通信適配卡多為非智能型的,即在卡上未采用微處理器。本文所介紹的適配卡采用89C52作為微控制器,將大大減少PC主機的通信負擔(dān)。且在設(shè)計中使用最新的EPLD器件作為雙口RAM的邏輯控制和中斷信號控制,使得電路比較簡單,而且具有很好的可擴展性。
2 現(xiàn)場總線的技術(shù)特點
CAN現(xiàn)場總線的技術(shù)特點:①CAN總線是到目前為止唯一有國際標準的現(xiàn)場總線;②CAN為多主工作方式,網(wǎng)絡(luò)上的任一節(jié)點均可在任意時刻主動的向網(wǎng)絡(luò)上其它節(jié)點發(fā)送信息,而不分主從;在報文標識符上,CAN上的節(jié)點分成不同的優(yōu)先級,可滿足不同的實時要求,優(yōu)先級高的數(shù)據(jù)最多可在134μs內(nèi)得到傳輸;a.數(shù)據(jù)的轉(zhuǎn)發(fā),適配卡把總線上各個節(jié)點的信息轉(zhuǎn)發(fā)給PC機,并將PC機的命令和數(shù)據(jù)轉(zhuǎn)發(fā)給各個節(jié)點;b.用于完成CAN總線上用戶的部分監(jiān)控和管理任務(wù)。
3 適配卡的結(jié)構(gòu)
這里研制的CAN適配卡由ISA接口、雙口RAM、微控制器89C52、CAN通信控制器SJA1000、CAN收發(fā)器82C250、數(shù)據(jù)緩存器、地址譯碼與控制邏輯和中斷信號控制邏輯等部分組成。
3.1 雙口RAM及控制電路 PC機與CAN控制器之間要進行數(shù)據(jù)的傳送,必須在PC機和適配卡上的微處理器之間建立雙向的數(shù)據(jù)通道。這里采用共用外部數(shù)據(jù)存儲器的方法。集成雙口RAM是一種性能優(yōu)良的快速通信器件,適用于多CPU分布式系統(tǒng)及高速數(shù)字系統(tǒng)中,它有兩路完全獨立的端口,每個端口都有完整的地址和數(shù)據(jù)控制線,這里采用IDT7006雙口RAM。對于雙口RAM的應(yīng)用,一個很重要的問題就是必須避免兩個端口的爭用,兩邊同時讀/寫同一地址單元。但只要遵循一定的通信規(guī)則,使用合理的控制邏輯電路是可以避免爭用現(xiàn)象的。這里采用可編程邏輯器件EPM7128S來實現(xiàn)。EPN171285是一種典型的EPLD器件,采用了先進的CMOSEEPROM技術(shù),內(nèi)含2500個邏輯門和128個宏單元,可以在PCB板上直接對芯片進行編程。在該適配卡中,EPM7128S主要完成數(shù)據(jù)總線的驅(qū)動、中斷信號處理以及共享存儲器和數(shù)據(jù)緩沖器的地址譯碼。適配卡上的雙口RAM使用內(nèi)存映像的方式直接映射到主機內(nèi)存空間,實現(xiàn)適配卡與主機的數(shù)據(jù)交換。內(nèi)存映象法是將適配卡的數(shù)據(jù)存儲地址配置于PC機的主存儲器的高端,PC機可以采用寫主存儲器的方式將數(shù)據(jù)直接寫在適配卡的數(shù)據(jù)存儲器中,PC機不訪問適配卡的微控制器時就可以讀寫數(shù)據(jù)存儲器的數(shù)據(jù)。
3.2 微控制器電路 微控制器采用ATMEL公司的89C52,它與MCS51系列完全兼容,帶有8k字節(jié)的系統(tǒng)可編程Flash和256B的片內(nèi)RAM。它主要承擔(dān)節(jié)點與PC機之間的數(shù)據(jù)通信和協(xié)調(diào)管理工作。電保護電路,可防止因適配卡掉電引起的測量數(shù)據(jù)丟失。由于適配卡的工作環(huán)境干擾很嚴重,使得電路調(diào)試比較復(fù)雜且故障率也較高,本卡設(shè)計了三種復(fù)位方式。一種為上電復(fù)位方式,即在PC機通電時,同時對適配卡也進行復(fù)位;第二種為在調(diào)試時出現(xiàn)故障,使用手動復(fù)位鍵進行復(fù)位;第三種方式為軟件復(fù)位,這種方法是使用初始化模塊中的軟件指令對適配卡進行復(fù)位。
3.3 通信控制器 CAN通信控制器采用PHILIPS公司的SJA1000,它是一種獨立的CAN控制器,主要應(yīng)用于移動目標和一般的工業(yè)環(huán)境中的區(qū)域控制。在本適配卡中SJA1000主要完成具體的報文發(fā)送和報文接收。SJA1000的基本特點有:①具有擴展的64字節(jié)接受緩沖器,先進先出(FIFO);②支持CAN2.0A和CAN2.0B協(xié)議;③支持11位和29位的標識碼;④通信速率可達1Mbps;⑤24MHz時鐘頻率;⑥可與不同的微處理器接口;⑦可編程的CAN輸出驅(qū)動器配置;可工作于BasicCAN和PeliCAN兩種狀態(tài)。CAN控制器的內(nèi)部采用模塊結(jié)構(gòu),由七個部分組成:接口管理邏輯(IML)用于解釋來自CPU的命令,控制CAN寄存器的尋址,向主控制器提供中斷信息和狀態(tài)信息;發(fā)送緩沖器(TXB)是CPU與BSP之間的接口,緩沖器可以存儲有13個字節(jié)的一條完整的報文;接收緩沖器(RXB)是接收濾波器和CPU之間的接口,用于存儲從CAN總線上接收并被確認的信息;驗收濾波器(ACF),用于對接收到的標識碼進行驗收,以決定是否接收下這條報文;位流處理器(BSP)是一個在發(fā)送緩沖器、RXFIFO和CAN總線之間控制數(shù)據(jù)流的隊列發(fā)生器,它還執(zhí)行總線上的錯誤檢測、仲裁、填充和錯誤處理;位時序邏輯(BTL),用于監(jiān)視串行的CAN總線和位時序;錯誤管理邏輯(EML),用于限制傳輸層模塊的錯誤。
3.4 輔助電路 CAN控制器SJA1000并不能直接與總線相連,還要通過總線驅(qū)動器才能接于總線上。本適配卡采用82C250總線驅(qū)動器,為了增強CAN總線節(jié)點的抗干擾能力,SJA1000的TX0和TX1通過高速光耦6N137后與82C250相連,使得總線上的各節(jié)點具有很好的電氣隔離。
4 CAN通訊適配卡的軟件設(shè)計
適配卡主要承擔(dān)上位機和節(jié)點之間的報文轉(zhuǎn)發(fā)任務(wù)。軟件設(shè)計包含兩部分:一部分是上位機的應(yīng)用程序設(shè)計,該程序采用VB6.0開發(fā),用于完成上位機和雙口RAM之間的通信,主要包括上位機向適配卡上的雙口RAM發(fā)送控制命令、數(shù)據(jù)命令、請求數(shù)據(jù)命令、請求狀態(tài)命令和接收數(shù)據(jù)等。另一部分是適配卡上的微處理器的程序設(shè)計,使用KeilC編寫,下位機上的程序負責(zé)微處理器與雙口RAM以及微處理器與SJA1000之間的通信。其軟件設(shè)計的主要任務(wù)是向CAN控制器轉(zhuǎn)發(fā)來自PC機的命令,并由SJA1000進一步轉(zhuǎn)發(fā)到CAN節(jié)點,并將由控制器接受的來自節(jié)點的數(shù)據(jù)和狀態(tài)信息送到雙口RAM。同時在程序開發(fā)中還包含對89C52的初始化,雙口RAM的初始化以及SJA1000的初始化。SJA1000初始化主要是指設(shè)置模式、總線時序、中斷使能、屏蔽碼和ID信號,這些設(shè)置是通過對芯片的內(nèi)部寄存器賦值來實現(xiàn)的,如表中SJA1000寄存器初始化參考。
5 小結(jié)
CAN總線通訊適配卡,不僅可用于變電站測控系統(tǒng),而且適用于其它分布式現(xiàn)場總線控制系統(tǒng)。它可以適應(yīng)不同的傳輸速率和距離,易于編寫接口程序。由于采用了EPLD技術(shù),可方便地設(shè)計適配卡的邏輯功能,且易于對適配卡進行擴展和升級。