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

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

2008-06-10
作者:雷閃耀1,梁昭峰1,朱啟晨2

  摘 要: 提出了一種基于雙處理器的CAN現(xiàn)場總線與以太網(wǎng)絡(luò)互連解決方案,詳細(xì)介紹了該通信接口卡的軟硬件設(shè)計(jì),實(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)勢(shì)在工業(yè)控制現(xiàn)場仍然很難完全發(fā)揮出來,而且實(shí)時(shí)性和抗干擾能力也不能適應(yīng)工業(yè)自動(dòng)化范圍中所有要求,所以最好的解決方案是將以太網(wǎng)同現(xiàn)場總線相結(jié)合,充分利用這兩種通信技術(shù)在各自領(lǐng)域中的優(yōu)點(diǎn)。具體表現(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)上獨(dú)立的節(jié)點(diǎn),保證了智能單元設(shè)備和上位機(jī)" title="上位機(jī)">上位機(jī)系統(tǒng)通信快速、完全、可靠,為遠(yuǎn)程管理智能裝置創(chuàng)造條件。通信接口卡(Master板)與上位機(jī)信息交換是建立在TCP/IP" title="TCP/IP">TCP/IP協(xié)議上的國際電力行業(yè)標(biāo)準(zhǔn)的IEC104規(guī)約,采用Server/Client通信服務(wù)模式,Master板作服務(wù)器可以支持多客戶同時(shí)登入。系統(tǒng)結(jié)構(gòu)如圖1所示。


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


4.2 協(xié)議轉(zhuǎn)換與以太網(wǎng)通信程序
  嵌入式協(xié)議轉(zhuǎn)換程序的設(shè)計(jì)思路為:當(dāng)有以太網(wǎng)應(yīng)用層數(shù)據(jù)發(fā)送到現(xiàn)場智能裝置時(shí),Rabbit把TCP數(shù)據(jù)報(bào)文解析出來后即發(fā)送給DSP處理,而當(dāng)來自DSP的裝置內(nèi)部數(shù)據(jù)要發(fā)往以太網(wǎng)應(yīng)用層時(shí)則將其打包成TCP數(shù)據(jù)報(bào)文發(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ù)庫,能實(shí)現(xiàn)Socket級(jí)別的TCP/IP編程,并支持各種網(wǎng)絡(luò)協(xié)議(如Http,F(xiàn)tp等)。調(diào)用“dcrtcp.lib”,定義數(shù)據(jù)類型為tcp_Socket的變量,建立TCP套接字,利用其特殊的協(xié)語句(CoState),可以實(shí)現(xiàn)在單一程序中實(shí)現(xiàn)多線程,同時(shí)建立與處理多個(gè)TCP連接,支持多客戶端同時(shí)登入。
4.3 上位機(jī)應(yīng)用層TCP/IP客戶端程序
  后臺(tái)接口軟件具有后臺(tái)監(jiān)控軟件的中轉(zhuǎn)代理和智能裝置定值下載、報(bào)文監(jiān)視,以及PC調(diào)試等功能。后臺(tái)接口軟件使用Delphi 6.0快速開發(fā)環(huán)境(RAD)開發(fā)。利用其自帶的TClientSocket組件建立TCP客戶端,TClientSocket組件封裝了Socket套接字,只要將組件Active屬性設(shè)置為True,那么它就會(huì)自動(dòng)不斷嘗試連接指定IP地址與端口(IEC60870-5-104指定端口為2404)的TCP服務(wù)器。TClientSocket組件自帶的TNMUDP組件與其他應(yīng)用程序(如后臺(tái)監(jiān)控軟件)通信;開放原代碼的tmsAdvstring第三方組件包實(shí)現(xiàn)報(bào)表的生成與打印。
  本文提出的基于雙處理器的CAN總線與以太網(wǎng)互連方案是一種高性能、可靠快捷的互連方案,已經(jīng)在局地網(wǎng)成功應(yīng)用于智能裝置中,滿足水電站、變電站等工業(yè)場合的應(yīng)用要求。該互連方案使智能裝置與上位機(jī)系統(tǒng)有更深層次的互連,為遠(yuǎn)程管理智能設(shè)備創(chuàng)造條件,具有非常廣闊的應(yīng)用前景。
參考文獻(xiàn)
1 邵貝貝,龔光華,薛濤等.Motorola DSP型16位單片機(jī)原理與實(shí)踐.北京航空航天大學(xué)出版社,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)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。