羅 奇 余永元 龍 航 張曉航
(貴州大學電氣工程學院,貴州 貴陽 550025)
xPC 目標[1]是一個實時的內(nèi)核系統(tǒng),是由Mathworks 公司基于RTW框架體系提供和發(fā)行的產(chǎn)品。該系統(tǒng)采用32 位保護模式運行在目標機上,用于產(chǎn)品的原型開發(fā)和測試。支持多種類型的I/O 設(shè)備,用戶只需安裝相關(guān)軟件和編譯器就可將一個PC 兼容機作為xPC 目標實時系統(tǒng)。
以太網(wǎng)具有靈活性高、傳輸速度快,滿足全雙工通信,易于實現(xiàn)。采用載波多路訪問和沖突檢測(CSMA/CD)機制,數(shù)據(jù)傳輸速率快,適合于傳輸TCP/IP 數(shù)據(jù),xPC 目標通過連接以太網(wǎng)與宿主機通信。本文用到的RTL8019AS 芯片是高度集成以太網(wǎng)控制器,它可以方便的的解答即插即用NE2000 兼容適配器?;谝蕴W(wǎng)的xPC 目標能夠方便的實現(xiàn)DSP 的通信。xPC 目標與DSP 通信系統(tǒng)如圖1 所示。
圖1 xPC 與DSP 通信系統(tǒng)
xPC 目標采用雙機模式,即宿主機(上位機)控制目標機(下位機)的技術(shù)途徑,其中,宿主機搭建Simulink 模型,通過編譯下載到目標機執(zhí)行控制器代碼。xPC 目標要實現(xiàn)宿主機與目標機之間的通信,可以通過以太網(wǎng)連接或者串口線連接來實現(xiàn)
xPC 目標的功能強大,操作簡單,用戶可以很方便實現(xiàn)對實時系統(tǒng)的快速原型化、測試和配置功能[2]。
(1)普通配置的PC 機都可以作為目標機嵌入xPC 實時系統(tǒng),在此系統(tǒng)中實時運行Simulink 和RTW 通過編譯生成的應(yīng)用程序。
(2)具有豐富的I/O 設(shè)備驅(qū)動模塊庫,支持多種CAN 總線。
(3)宿主機和目標機通信通過RS232 串口或者以太網(wǎng)TCP/IP 協(xié)議實現(xiàn)。
(4)MATLAB 應(yīng)用程序界面采用客戶/服務(wù)模式,提供了九十多種函數(shù)用于宿主機對目標機的控制。
(5)可以在程序運行時從宿主機或者目標機上動態(tài)調(diào)參。
(6)在宿主機和目標機上都可以進行交互式的數(shù)據(jù)可視化和信號跟蹤。
(7)支持Microsoft Visual C/C++5.0 以上版本的開發(fā)工具。
本文中,宿主機和目標機之間的通信,目標機與DSP 之間的通信,都是通過連接以太網(wǎng)來實現(xiàn)。因此xPC 目標機需要配備兩塊以太網(wǎng)卡,一片用于xPC 目標跟宿主機通信,另一片用于xPC 跟DSP 間的通信。
xPC 目標機跟宿主機之間的通信可以選擇普通的網(wǎng)卡,市場最常見的10M/100M 網(wǎng)卡都可以滿足要求。在Matlab 命令窗口輸入-xpcexplr 命令,調(diào)出宿主機與xPC 目標通信連接界面。首先設(shè)置宿主機和xPC 目標機的通信類型是基于以太網(wǎng)TCP/IP 協(xié)議。然后設(shè)置xPC 目標的IP 地址和端口號,這里要注意目標機的IP 要和宿主機的IP 處于同一網(wǎng)段,例如xPC 的IP 可以設(shè)成192.168.1.9,那么宿主機的IP 要設(shè)成192.168.1.X。如果不是同一網(wǎng)段,宿主機和目標機就不能連通。設(shè)置好參數(shù)之后就可以點擊連接,如果綠燈亮,則表示可以宿主機可以編譯和下載程序到目標機。
用于跟DSP 通信的網(wǎng)卡則需要選擇Intel 8255X 系列和Intel Gigabit 系列的網(wǎng)卡,可以參考文獻[3]。圖2 是在Matlab/Simulink 搭建的基于TCP/IP 協(xié)議的發(fā)送/接收模型:
圖2 Simulink 中發(fā)送和接收模型
模型參數(shù)設(shè)置
1)利用以太網(wǎng)卡初始化模塊進行初始化設(shè)置,這其中包括網(wǎng)卡的總線數(shù)目,PCI 插槽的序號,發(fā)送數(shù)據(jù)網(wǎng)卡的MAC 地址。
2)設(shè)置創(chuàng)建以太網(wǎng)數(shù)據(jù)包模塊中的MAC 地址,這里是DSP 的MAC,類型設(shè)為’0800’表示創(chuàng)建的是基于TCP/IP 協(xié)議數(shù)據(jù)包。
3)連接宿主機和xPC 目標機,成功之后點擊編譯,模型下載到xPC 目標機,在xPC 目標機輸入-start,開始發(fā)送數(shù)據(jù)包。
DSP28335 的以太網(wǎng)連接芯片選用由臺灣Realtek 公司生產(chǎn)的基于ISA 總線的10Mbps 以太網(wǎng)控制器芯片RTL8019AS,該芯片實現(xiàn)以太網(wǎng)媒介訪問層(MAC)和物理層(PHY)的功能[4],其中包括MAC 數(shù)據(jù)幀的收發(fā)、地址識別、CRC 校驗、曼徹斯特編碼解碼等功能。
在接收數(shù)據(jù)之前需要配置DSP 的MAC 和IP 地址,以及xPC 目標發(fā)送數(shù)據(jù)包的網(wǎng)卡IP 地址。這一部分的實現(xiàn)需要在程序中進行配置,部分程序如下所示:
DSP 初始化寄存器和網(wǎng)絡(luò)芯片RTL8019AS,并且開啟中斷.當有網(wǎng)絡(luò)數(shù)據(jù)到達時,DSP 采用中斷方式讀取以太網(wǎng)數(shù)據(jù)并進行分析。xPC 發(fā)送過來的數(shù)據(jù)是用TCP/IP 協(xié)議封裝好的標準以太網(wǎng)幀,DSP 收到的數(shù)據(jù)首先存儲在RTL8019AS 的緩存中,然后調(diào)用接收數(shù)據(jù)幀函數(shù)將數(shù)據(jù)讀入DSP。讀數(shù)據(jù)包之前,可以通過讀BNRY 指針和CURR指針[5]來判斷是否接收到數(shù)據(jù)包,BNRY=CURR 說明沒有數(shù)據(jù)包接收,當兩個指針變量有差值時說明有數(shù)據(jù)包收到。
完成xPC 目標和DSP 配置后,先啟動xPC 目標機,然后啟動DSP。就可以在xPC 目標機上觀測xPC 目標發(fā)送的信號和接收來自DSP 反饋回來的信號。具體波形如圖3 所示:
圖3 xPC 目標發(fā)送信號和DSP 反饋信號
本文基于以太網(wǎng)TCP/IP 協(xié)議實現(xiàn)了xPC 目標與DSP 的全雙工通信,xPC 目標通過以太網(wǎng)卡給DSP 發(fā)送數(shù)據(jù),DSP 正常接收數(shù)據(jù)并反饋給xPC 接收,實驗所得結(jié)果滿足期望,兩個信號之間的延時延時小,丟包率低,同時也驗證了基于以太網(wǎng)TCP/IP 協(xié)議通信的可靠性。
[1]楊滌,等.系統(tǒng)實時仿真開發(fā)環(huán)境與應(yīng)用[M].北京:清華大學出版社,2002.
[2]陶建峰,朱野,等.xPC 目標及其API 函數(shù)在實時控制軟件開發(fā)中的應(yīng)用[J].上中國航空學會控制與應(yīng)用第十二屆學術(shù)年會論文集,2000.
[3]xPC TargetTMI_O Reference Guide[M].The Math works Inc,2003.
[4]張穎,張長利.基于DSP 的具有以太網(wǎng)接口的嵌入式系統(tǒng)設(shè)計[J].煤礦機械,2005.
[5]肖守邦,等.DSP 以太網(wǎng)通信接口設(shè)計[J].中國高新技術(shù)企業(yè),2008.