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