《電子技術(shù)應用》
您所在的位置:首頁 > 其他 > 業(yè)界動態(tài) > 智能裝置CAN轉(zhuǎn)以太互連通信方案設(shè)計

智能裝置CAN轉(zhuǎn)以太互連通信方案設(shè)計

2008-06-10
作者:雷閃耀1,,梁昭峰1,朱啟晨2
關(guān)鍵詞: 上位機 客戶端 串口 應用層 TCP/IP

  摘 要: 提出了一種基于雙處理器的CAN現(xiàn)場總線與以太網(wǎng)絡(luò)互連解決方案,,詳細介紹了該通信接口卡的軟硬件設(shè)計,,實現(xiàn)了生產(chǎn)管理層和智能裝置之間基于IEC60870-5-101/104通信規(guī)約的數(shù)據(jù)通信,。
  關(guān)鍵詞: CAN總線 以太網(wǎng) DSP56F807 Rabbit2000 IEC60870-5-101/104

?

  目前,由于以太網(wǎng)的優(yōu)勢在工業(yè)控制現(xiàn)場仍然很難完全發(fā)揮出來,,而且實時性和抗干擾能力也不能適應工業(yè)自動化范圍中所有要求,,所以最好的解決方案是將以太網(wǎng)同現(xiàn)場總線相結(jié)合,充分利用這兩種通信技術(shù)在各自領(lǐng)域中的優(yōu)點,。具體表現(xiàn)為在生產(chǎn)管理與監(jiān)控層采用高速以太網(wǎng)技術(shù),,而在現(xiàn)場設(shè)備層采用現(xiàn)場總線技術(shù),。
1 系統(tǒng)結(jié)構(gòu)
  本系統(tǒng)間隔單元設(shè)備采用嵌入式工業(yè)以太網(wǎng)技術(shù),從而使智能裝置真正成為工業(yè)以太網(wǎng)上獨立的節(jié)點,,保證了智能單元設(shè)備和上位機" title="上位機">上位機系統(tǒng)通信快速,、完全、可靠,,為遠程管理智能裝置創(chuàng)造條件,。通信接口卡(Master板)與上位機信息交換是建立在TCP/IP" title="TCP/IP">TCP/IP協(xié)議上的國際電力行業(yè)標準的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擴展模式,,為了保持協(xié)議標準化,在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模塊負責管理CAN通信。DSP外擴64KBRAM,,用于存儲數(shù)據(jù),。RABBIT2000作為從處理器,負責進行CAN到ETHERNET轉(zhuǎn)換,,并負責管理裝置同后臺的以太網(wǎng)通信,。RABBIT2000與DSP接口方式采用并行接口。板上還設(shè)有RS485,、RS232接口,,可以用于PC調(diào)試或與后臺連接。DSP56F807采用3.3V電源供電,,RABBIT2000采用5V電源供電,,經(jīng)測試只要輸入電壓達到2.1V,RABBIT2000即認為高電平,,DSP56F807輸出高電平在2.1V以上,;DSP56F807 I/O可以接受5V信號,所以DSP與RABBIT2000可以直接相連,,無須進行電平轉(zhuǎn)換,。
  (1)DSP56F807主處理器
  DSP數(shù)據(jù)總線D0~D15地址總線A0~A15,外擴64KRAM存儲數(shù)據(jù),,,、連接外擴RAM的讀、寫允許端,,作為外擴RAM 片選信號,。DSP的GPIOB口連接從處理器的SD0~SD7,GPIOD0,、GPIOD1連接從處理器的SA0,、SA1,GPIOD2,、GPIOD3連接從處理器的寫,、讀允許端()。一個中斷連接從處理器的,,作為從處理器中斷申請,。DSP的PWMB2連接MAX705的WDI作為外部硬件看門狗喂狗信號,PWMB4連接發(fā)光二極管作為DSP的運行指示燈,。用DSP的兩個SCI模塊RXD0,、TXD0、RXD1,、TXD1做成標準RS-232,、485接口。引出DSP的JTAG口用于調(diào)試,,用DSP的MSCAN模塊和82C250作為CAN通信端口,。通過DSP的SPI口與RABBIT2000同步串口" title="串口">串口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ù)鎖存進入地址線所選擇的寄存器中,。連接到DSP的一個中斷口,,在它變低時向DSP申請中斷。如果從處理器寫SPD0R寄存器,,這根線置為低電平,,聲明從處理器中有可用的數(shù)據(jù);如果主處理器寫從處理器狀態(tài)寄存器,這根線變?yōu)楦唠娖?。使用串口A作為編程口,,串口B及CLKB作為同步串口和DSP的SPI口相連,組成另一種接口方案,。使用PC2作為RABBIT2000運行指示燈,,以太網(wǎng)模塊(RCM2100自帶RJ-45接口)引出通信指示燈。PE4,、-IN,、MAX705組成硬件看門狗電路。RCM2100采用5V供電,。使用INT1A作為GPS對時,。4 軟件功能實現(xiàn)
  系統(tǒng)通信軟件可以分成CAN總線接口通信程序、協(xié)議轉(zhuǎn)換與以太網(wǎng)通信程序和上位機應用層" title="應用層">應用層TCP客戶端" title="客戶端">客戶端程序設(shè)計三個部分,。
4.1 CAN總線接口通信程序
  CAN總線接口通信程序運行于DSP56F807上,,使用CodeWarrior C/C++集成開發(fā)環(huán)境。該部分程序的主要目的是將智能裝置內(nèi)各種數(shù)據(jù)搜集起來,,形成一個數(shù)據(jù)緩沖池,,并不斷刷新供上位機調(diào)取,而來自上位機的數(shù)據(jù)通過以太網(wǎng)網(wǎng)關(guān)被DSP接收到后將被轉(zhuǎn)換為CAN協(xié)議數(shù)據(jù),,下發(fā)到裝置內(nèi)部各個插件,。主要通信程序模塊有: (1)CAN接收中斷模塊
  CAN網(wǎng)接收的短幀,存入共用發(fā)送處理區(qū)或者保存區(qū),。把CAN接收中斷的數(shù)據(jù)進行分析處理,,如果ID標識符的第一個字節(jié)的最高位為1,則是多信息幀數(shù)據(jù),,反之為單信息幀數(shù)據(jù),。如果是多幀信息,則根據(jù)幀序號把每幀數(shù)據(jù)按順序壓入接收緩存區(qū),。如果發(fā)現(xiàn)ID標識符寄存器2的最高位為1,,則代表結(jié)束幀,為0則代表中間數(shù)據(jù)幀。
  (2)CAN發(fā)送程序模塊
  當有數(shù)據(jù)需要發(fā)往CAN口時,,調(diào)用拆幀函數(shù),,使之轉(zhuǎn)化為相對應HiLon CAN短幀,每個短幀區(qū)分配16字節(jié)空間,,并分別存入2KB的CanSendBuf發(fā)送緩沖區(qū),,啟動CAN發(fā)送中斷,。
  (3)并口接收中斷模塊
 在并口中斷中,,交換數(shù)據(jù)是相互的,雙方均可主動發(fā)起數(shù)據(jù),。在底層并口交換數(shù)據(jù)程序中開辟了一個256字節(jié)的緩沖區(qū),,在中斷中查詢緩沖區(qū)是否已接收完;如果接收完,,則處理送入1K并口接收緩沖區(qū)ParallelRecBuf,。當一個數(shù)據(jù)包接收完,則壓入共用發(fā)送處理緩沖區(qū),。
  (4)并口發(fā)送程序模塊
  當有數(shù)據(jù)需向并口發(fā)送時,,從共用發(fā)送處理區(qū)或者保存區(qū)中取出數(shù)據(jù)組幀為IEC104信息體,送入1KB的并口發(fā)送區(qū)中ParallelSendBuf,,啟動底層并口發(fā)送中斷,。
  DSP主程序結(jié)構(gòu)流程圖如圖4所示。


4.2 協(xié)議轉(zhuǎn)換與以太網(wǎng)通信程序
  嵌入式協(xié)議轉(zhuǎn)換程序的設(shè)計思路為:當有以太網(wǎng)應用層數(shù)據(jù)發(fā)送到現(xiàn)場智能裝置時,,Rabbit把TCP數(shù)據(jù)報文解析出來后即發(fā)送給DSP處理,,而當來自DSP的裝置內(nèi)部數(shù)據(jù)要發(fā)往以太網(wǎng)應用層時則將其打包成TCP數(shù)據(jù)報文發(fā)送給目標TCP客戶端。該程序由Dynamic C開發(fā)環(huán)境開發(fā),。Dynamic C是Z-world 公司為其Rabbit系列產(chǎn)品開發(fā)的一種改進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 上位機應用層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組件與其他應用程序(如后臺監(jiān)控軟件)通信,;開放原代碼的tmsAdvstring第三方組件包實現(xiàn)報表的生成與打印。
  本文提出的基于雙處理器的CAN總線與以太網(wǎng)互連方案是一種高性能,、可靠快捷的互連方案,,已經(jīng)在局地網(wǎng)成功應用于智能裝置中,滿足水電站,、變電站等工業(yè)場合的應用要求,。該互連方案使智能裝置與上位機系統(tǒng)有更深層次的互連,為遠程管理智能設(shè)備創(chuàng)造條件,,具有非常廣闊的應用前景,。
參考文獻
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

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。