摘 要: 提出了一種基于雙處理器的CAN現場總線與以太網絡互連解決方案,詳細介紹了該通信接口卡的軟硬件設計,實現了生產管理層和智能裝置之間基于IEC60870-5-101/104通信規約的數據通信。
關鍵詞: CAN總線 以太網 DSP56F807 Rabbit2000 IEC60870-5-101/104
?
目前,由于以太網的優勢在工業控制現場仍然很難完全發揮出來,而且實時性和抗干擾能力也不能適應工業自動化范圍中所有要求,所以最好的解決方案是將以太網同現場總線相結合,充分利用這兩種通信技術在各自領域中的優點。具體表現為在生產管理與監控層采用高速以太網技術,而在現場設備層采用現場總線技術。
1 系統結構
本系統間隔單元設備采用嵌入式工業以太網技術,從而使智能裝置真正成為工業以太網上獨立的節點,保證了智能單元設備和上位機" title="上位機">上位機系統通信快速、完全、可靠,為遠程管理智能裝置創造條件。通信接口卡(Master板)與上位機信息交換是建立在TCP/IP" title="TCP/IP">TCP/IP協議上的國際電力行業標準的IEC104規約,采用Server/Client通信服務模式,Master板作服務器可以支持多客戶同時登入。系統結構如圖1所示。
2 裝置內部結構設計
智能裝置內部各功能模塊采用高速現場總線CAN網絡相連,總線不出裝置,功能模塊之間的數據交互快速可靠。在組幀上采用HLON規約,并使用CAN 2.0B擴展模式,為了保持協議標準化,在HLON規約的基礎上封裝了IEC101規約。其內部結構如圖2所示。
3 硬件設計
通信接口卡使用雙處理器結構。一部分是使用Motorola公司DSP56F807芯片作為接口卡的CAN通信管理模塊;另一部分是使用Rabbit2000核的RCM2100集成卡作嵌入式網關和CAN到ETHERNET規約轉換模塊。通信接口卡硬件邏輯框圖如圖3所示。
通信接口卡采用主從工作方式,即DSP56F807作為主處理器,利用其自帶的MSCAN模塊負責管理CAN通信。DSP外擴64KBRAM,用于存儲數據。RABBIT2000作為從處理器,負責進行CAN到ETHERNET轉換,并負責管理裝置同后臺的以太網通信。RABBIT2000與DSP接口方式采用并行接口。板上還設有RS485、RS232接口,可以用于PC調試或與后臺連接。DSP56F807采用3.3V電源供電,RABBIT2000采用5V電源供電,經測試只要輸入電壓達到2.1V,RABBIT2000即認為高電平,DSP56F807輸出高電平在2.1V以上;DSP56F807 I/O可以接受5V信號,所以DSP與RABBIT2000可以直接相連,無須進行電平轉換。
(1)DSP56F807主處理器
DSP數據總線D0~D15地址總線A0~A15,外擴64KRAM存儲數據,、
連接外擴RAM的讀、寫允許端,
作為外擴RAM 片選信號。DSP的GPIOB口連接從處理器的SD0~SD7,GPIOD0、GPIOD1連接從處理器的SA0、SA1,GPIOD2、GPIOD3連接從處理器的寫、讀允許端(
)。一個中斷
連接從處理器的
,作為從處理器中斷申請。DSP的PWMB2連接MAX705的WDI作為外部硬件看門狗喂狗信號,PWMB4連接發光二極管作為DSP的運行指示燈。用DSP的兩個SCI模塊RXD0、TXD0、RXD1、TXD1做成標準RS-232、485接口。引出DSP的JTAG口用于調試,用DSP的MSCAN模塊和82C250作為CAN通信端口。通過DSP的SPI口與RABBIT2000同步串口" title="串口">串口B相連,作為另一種接口方式。DSP采用3.3V電源供電。
(2)RABBIT2000從處理器
該處理器使用內核為RABBIT2000的RCM2100集成卡。其SD0~SD7連接到DSP的GPIOB0-GPIOB7。SA1、SA0用來選擇從處理器接口的四個數據寄存器中的一個,連接到DSP的GPIOD1、GPIOD0。從芯片選擇管腳連接到DSP芯片的一個輸出端GPIOD4。
連接到DSP的GPIOD3,如果
為低,這根線被拉低使地址線所選擇的寄存器的內容被放置到總線上,
連接到DSP的GPIOD2 ,這根線能夠將數據總線上的數據鎖存進入地址線所選擇的寄存器中。
連接到DSP的一個中斷口
,在它變低時向DSP申請中斷。如果從處理器寫SPD0R寄存器,
這根線置為低電平,聲明從處理器中有可用的數據;如果主處理器寫從處理器狀態寄存器,這根線變為高電平。使用串口A作為編程口,串口B及CLKB作為同步串口和DSP的SPI口相連,組成另一種接口方案。使用PC2作為RABBIT2000運行指示燈,以太網模塊(RCM2100自帶RJ-45接口)引出通信指示燈。PE4、
-IN、MAX705組成硬件看門狗電路。RCM2100采用5V供電。使用INT1A作為GPS對時。4 軟件功能實現
系統通信軟件可以分成CAN總線接口通信程序、協議轉換與以太網通信程序和上位機應用層" title="應用層">應用層TCP客戶端" title="客戶端">客戶端程序設計三個部分。
4.1 CAN總線接口通信程序
CAN總線接口通信程序運行于DSP56F807上,使用CodeWarrior C/C++集成開發環境。該部分程序的主要目的是將智能裝置內各種數據搜集起來,形成一個數據緩沖池,并不斷刷新供上位機調取,而來自上位機的數據通過以太網網關被DSP接收到后將被轉換為CAN協議數據,下發到裝置內部各個插件。主要通信程序模塊有: (1)CAN接收中斷模塊
CAN網接收的短幀,存入共用發送處理區或者保存區。把CAN接收中斷的數據進行分析處理,如果ID標識符的第一個字節的最高位為1,則是多信息幀數據,反之為單信息幀數據。如果是多幀信息,則根據幀序號把每幀數據按順序壓入接收緩存區。如果發現ID標識符寄存器2的最高位為1,則代表結束幀,為0則代表中間數據幀。
(2)CAN發送程序模塊
當有數據需要發往CAN口時,調用拆幀函數,使之轉化為相對應HiLon CAN短幀,每個短幀區分配16字節空間,并分別存入2KB的CanSendBuf發送緩沖區,啟動CAN發送中斷。
(3)并口接收中斷模塊
在并口中斷中,交換數據是相互的,雙方均可主動發起數據。在底層并口交換數據程序中開辟了一個256字節的緩沖區,在中斷中查詢緩沖區是否已接收完;如果接收完,則處理送入1K并口接收緩沖區ParallelRecBuf。當一個數據包接收完,則壓入共用發送處理緩沖區。
(4)并口發送程序模塊
當有數據需向并口發送時,從共用發送處理區或者保存區中取出數據組幀為IEC104信息體,送入1KB的并口發送區中ParallelSendBuf,啟動底層并口發送中斷。
DSP主程序結構流程圖如圖4所示。
4.2 協議轉換與以太網通信程序
嵌入式協議轉換程序的設計思路為:當有以太網應用層數據發送到現場智能裝置時,Rabbit把TCP數據報文解析出來后即發送給DSP處理,而當來自DSP的裝置內部數據要發往以太網應用層時則將其打包成TCP數據報文發送給目標TCP客戶端。該程序由Dynamic C開發環境開發。Dynamic C是Z-world 公司為其Rabbit系列產品開發的一種改進C語言開發系統。它提供豐富的函數庫,能實現Socket級別的TCP/IP編程,并支持各種網絡協議(如Http,Ftp等)。調用“dcrtcp.lib”,定義數據類型為tcp_Socket的變量,建立TCP套接字,利用其特殊的協語句(CoState),可以實現在單一程序中實現多線程,同時建立與處理多個TCP連接,支持多客戶端同時登入。
4.3 上位機應用層TCP/IP客戶端程序
后臺接口軟件具有后臺監控軟件的中轉代理和智能裝置定值下載、報文監視,以及PC調試等功能。后臺接口軟件使用Delphi 6.0快速開發環境(RAD)開發。利用其自帶的TClientSocket組件建立TCP客戶端,TClientSocket組件封裝了Socket套接字,只要將組件Active屬性設置為True,那么它就會自動不斷嘗試連接指定IP地址與端口(IEC60870-5-104指定端口為2404)的TCP服務器。TClientSocket組件自帶的TNMUDP組件與其他應用程序(如后臺監控軟件)通信;開放原代碼的tmsAdvstring第三方組件包實現報表的生成與打印。
本文提出的基于雙處理器的CAN總線與以太網互連方案是一種高性能、可靠快捷的互連方案,已經在局地網成功應用于智能裝置中,滿足水電站、變電站等工業場合的應用要求。該互連方案使智能裝置與上位機系統有更深層次的互連,為遠程管理智能設備創造條件,具有非常廣闊的應用前景。
參考文獻
1 邵貝貝,龔光華,薛濤等.Motorola DSP型16位單片機原理與實踐.北京航空航天大學出版社,2003
2 DSP56F801/803/805/807 16-Bit Digital Signal Processor User′s Manual,MOTOROLA INC,2001
3 Preliminary Technical Data DSP56F807 16-bit Digital Signal Processor,Rev.6.0,MOTOROLA INC,2001,8