智能裝置CAN轉(zhuǎn)以太互連通信方案設(shè)計
1 系統(tǒng)結(jié)構(gòu)
本系統(tǒng)間隔單元設(shè)備采用嵌入式工業(yè)以太網(wǎng)技術(shù),從而使智能裝置真正成為工業(yè)以太網(wǎng)上獨(dú)立的節(jié)點(diǎn),保證了智能單元設(shè)備和上位機(jī)系統(tǒng)通信快速、完全、可靠,為遠(yuǎn)程管理智能裝置創(chuàng)造條件。通信接口卡(Master板)與上位機(jī)信息交換是建立在TCP/IP協(xié)議上的國際電力行業(yè)標(biāo)準(zhǔn)的IEC104規(guī)約,采用Server/Client通信服務(wù)模式,Master板作服務(wù)器可以支持多客戶同時登入。系統(tǒng)結(jié)構(gòu)如圖1所示。
2 裝置內(nèi)部結(jié)構(gòu)設(shè)計
智能裝置內(nèi)部各功能模塊采用高速現(xiàn)場總線CAN網(wǎng)絡(luò)相連,總線不出裝置,功能模塊之間的數(shù)據(jù)交互快速可靠。在組幀上采用HLON規(guī)約,并使用CAN 2.0B擴(kuò)展模式,為了保持協(xié)議標(biāo)準(zhǔn)化,在HLON規(guī)約的基礎(chǔ)上封裝了IEC101規(guī)約。其內(nèi)部結(jié)構(gòu)如圖2所示。
3 硬件設(shè)計
通信接口卡使用雙處理器結(jié)構(gòu)。一部分是使用Motorola公司DSP56F807芯片作為接口卡的CAN通信管理模塊;另一部分是使用Rabbit2000核的RCM2100集成卡作嵌入式網(wǎng)關(guān)和CAN到ETHERNET規(guī)約轉(zhuǎn)換模塊。通信接口卡硬件邏輯框圖如圖3所示。
通信接口卡采用主從工作方式,即DSP56F807作為主處理器,利用其自帶的MSCAN模塊負(fù)責(zé)管理CAN通信。DSP外擴(kuò)64KBRAM,用于存儲數(shù)據(jù)。RABBIT2000作為從處理器,負(fù)責(zé)進(jìn)行CAN到ETHERNET轉(zhuǎn)換,并負(fù)責(zé)管理裝置同后臺的以太網(wǎng)通信。RABBIT2000與DSP接口方式采用并行接口。板上還設(shè)有RS485、RS232接口,可以用于PC調(diào)試或與后臺連接。DSP56F807采用3.3V電源供電,RABBIT2000采用5V電源供電,經(jīng)測試只要輸入電壓達(dá)到2.1V,RABBIT2000即認(rèn)為高電平,DSP56F807輸出高電平在2.1V以上;DSP56F807 I/O可以接受5V信號,所以DSP與RABBIT2000可以直接相連,無須進(jìn)行電平轉(zhuǎn)換。
(1)DSP56F807主處理器
DSP數(shù)據(jù)總線D0~D15地址總線A0~A15,外擴(kuò)64KRAM存儲數(shù)據(jù),、連接外擴(kuò)RAM的讀、寫允許端,作為外擴(kuò)RAM 片選信號。DSP的GPIOB口連接從處理器的SD0~SD7,GPIOD0、GPIOD1連接從處理器的SA0、SA1,GPIOD2、GPIOD3連接從處理器的寫、讀允許端()。一個中斷連接從處理器的,作為從處理器中斷申請。DSP的PWMB2連接MAX705的WDI作為外部硬件看門狗喂狗信號,PWMB4連接發(fā)光二極管作為DSP的運(yùn)行指示燈。用DSP的兩個SCI模塊RXD0、TXD0、RXD1、TXD1做成標(biāo)準(zhǔn)RS-232、485接口。引出DSP的JTAG口用于調(diào)試,用DSP的MSCAN模塊和82C250作為CAN通信端口。通過DSP的SPI口與RABBIT2000同步串口B相連,作為另一種接口方式。DSP采用3.3V電源供電。
(2)RABBIT2000從處理器
該處理器使用內(nèi)核為RABBIT2000的RCM2100集成卡。其SD0~SD7連接到DSP的GPIOB0-GPIOB7。SA1、SA0用來選擇從處理器接口的四個數(shù)據(jù)寄存器中的一個,連接到DSP的GPIOD1、GPIOD0。從芯片選擇管腳連接到DSP芯片的一個輸出端GPIOD4。連接到DSP的GPIOD3,如果為低,這根線被拉低使地址線所選擇的寄存器的內(nèi)容被放置到總線上,連接到DSP的GPIOD2 ,這根線能夠?qū)?shù)據(jù)總線上的數(shù)據(jù)鎖存進(jìn)入地址線所選擇的寄存器中。連接到DSP的一個中斷口,在它變低時向DSP申請中斷。如果從處理器寫SPD0R寄存器,這根線置為低電平,聲明從處理器中有可用的數(shù)據(jù);如果主處理器寫從處理器狀態(tài)寄存器,這根線變?yōu)楦唠娖?。使用串口A作為編程口,串口B及CLKB作為同步串口和DSP的SPI口相連,組成另一種接口方案。使用PC2作為RABBIT2000運(yùn)行指示燈,以太網(wǎng)模塊(RCM2100自帶RJ-45接口)引出通信指示燈。PE4、
4.2 協(xié)議轉(zhuǎn)換與以太網(wǎng)通信程序
嵌入式協(xié)議轉(zhuǎn)換程序的設(shè)計思路為:當(dāng)有以太網(wǎng)應(yīng)用層數(shù)據(jù)發(fā)送到現(xiàn)場智能裝置時,Rabbit把TCP數(shù)據(jù)報文解析出來后即發(fā)送給DSP處理,而當(dāng)來自DSP的裝置內(nèi)部數(shù)據(jù)要發(fā)往以太網(wǎng)應(yīng)用層時則將其打包成TCP數(shù)據(jù)報文發(fā)送給目標(biāo)TCP客戶端。該程序由Dynamic C開發(fā)環(huán)境開發(fā)。Dynamic C是Z-world 公司為其Rabbit系列產(chǎn)品開發(fā)的一種改進(jìn)C語言開發(fā)系統(tǒng)。它提供豐富的函數(shù)庫,能實現(xiàn)Socket級別的TCP/IP編程,并支持各種網(wǎng)絡(luò)協(xié)議(如Http,F(xiàn)tp等)。調(diào)用“dcrtcp.lib”,定義數(shù)據(jù)類型為tcp_Socket的變量,建立TCP套接字,利用其特殊的協(xié)語句(CoState),可以實現(xiàn)在單一程序中實現(xiàn)多線程,同時建立與處理多個TCP連接,支持多客戶端同時登入。
4.3 上位機(jī)應(yīng)用層TCP/IP客戶端程序
后臺接口軟件具有后臺監(jiān)控軟件的中轉(zhuǎn)代理和智能裝置定值下載、報文監(jiān)視,以及PC調(diào)試等功能。后臺接口軟件使用Delphi 6.0快速開發(fā)環(huán)境(RAD)開發(fā)。利用其自帶的TClientSocket組件建立TCP客戶端,TClientSocket組件封裝了Socket套接字,只要將組件Active屬性設(shè)置為True,那么它就會自動不斷嘗試連接指定IP地址與端口(IEC60870-5-104指定端口為2404)的TCP服務(wù)器。TClientSocket組件自帶的TNMUDP組件與其他應(yīng)用程序(如后臺監(jiān)控軟件)通信;開放原代碼的tmsAdvstring第三方組件包實現(xiàn)報表的生成與打印。
本文提出的基于雙處理器的CAN總線與以太網(wǎng)互連方案是一種高性能、可靠快捷的互連方案,已經(jīng)在局地網(wǎng)成功應(yīng)用于智能裝置中,滿足水電站、變電站等工業(yè)場合的應(yīng)用要求。該互連方案使智能裝置與上位機(jī)系統(tǒng)有更深層次的互連,為遠(yuǎn)程管理智能設(shè)備創(chuàng)造條件,具有非常廣闊的應(yīng)用前景。