摘 要: 浮點型DSP以豐富的外設,較高的主頻在工業(yè)控制領域得到廣泛的應用,CAN總線設備構成的現(xiàn)場總線與以太網(wǎng)構成的高速通信網(wǎng)絡已成為工業(yè)控制領域的發(fā)展趨勢。介紹了一種基于TMS320F28335的CAN總線與以太網(wǎng)互聯(lián)系統(tǒng)的設計方法,給出了系統(tǒng)各組成部分的硬件及軟件的設計與實現(xiàn)。控制部分采用TI公司的TMS320F28335,CAN總線接口模塊采用TI公司的SN65HVD230,以太網(wǎng)接口模塊控制芯片采用Realtek公司的RTL8019AS。該設計具有可擴展性好和性價比高的優(yōu)點。
關鍵詞: TMS320F28335; CAN; 以太網(wǎng); RTL8019AS
中圖分類號: TN710?34 文獻標識碼: A 文章編號: 1004?373X(2013)24?0128?02
Design of CAN and Ethernet interfaces based on TMS320F28335
LIU Yan?hang, XIAO Qiang, LI Wen?qiang
(Xi’an Electronic Engineering Research Institute, Xi’an 710100, China)
Abstract: Floating?point DSP with rich peripherals and higher frequency is widely used in the field of industrial control. The field bus constituted by CAN bus and high?speed communication network composed of Ethernet have become the development hot points in the field of industrial control. A design method of the interconnected system for Ethernet and CAN bus based on TMS320F28335 is proposed in this paper. The design and implementation methods of the hardwares and softwares in each assembly of the system are presented. The TMS320F28335 of TI Company is adopted in the control section. SN65HVD230 of TI Company is adopted as CAN bus interface module. RTL8019AS of Realtek Company is taken as the control chip of Ethernet interface module. The design has the advantages of good scalability and high cost performance.
Keywords: TMS320F28335; CAN; Ethernet; RTL8019AS
0 引 言
工業(yè)現(xiàn)場設備復雜化,單一的串行通信使系統(tǒng)越來越復雜,總線控制也成為控制系統(tǒng)的主流,而CAN總線以其高速率,高抗干擾性成為最有前途的總線之一。基于以太網(wǎng)的工業(yè)控制網(wǎng)絡具有數(shù)據(jù)傳輸率高,可靠性好,易維護,可遠程傳輸?shù)葍?yōu)點。隨著互聯(lián)網(wǎng)技術的普及與推廣,以太網(wǎng)通信速率的提高,交換技術的發(fā)展,使得它受到了全球的擁護和軟硬件的支持,因此,基于以太網(wǎng)的工業(yè)控制網(wǎng)絡是工業(yè)控制系統(tǒng)的發(fā)展趨勢。本文通過主流控制器TMS320F28335在已有豐富外設的基礎上,擴展了CAN總線和以太網(wǎng)接口,具有重要的工程價值。
1 系統(tǒng)硬件設計
TMS320F28335型單精度浮點DSP主頻可達150 MHz,內(nèi)核電壓1.9 V,I/O電壓3.3 V;片上帶有256 KB的l6位FLASH和34 KB的16位SARAM,并有128位安全密碼鑰匙鎖,保護FLASH防止固件反向工程。片上通信端口豐富,集成有3個SCI串口輸出通道,并帶有16 B的FIFO,2個多通道McBSP串口,2個增強型CAN,1個SPI總線。還帶有16通道的12位A/D轉換器等資源口(具體原理圖限于篇幅只畫CAN和以太網(wǎng)部分)[1]。
CAN驅(qū)動器選用TI公司的SN65HVD230,供電電壓為3.3 V,CAN接口部分原理圖如圖1所示。
圖1 CAN部分原理圖
以太網(wǎng)控制器選用Realtek公司的RTL8019AS,其具有集成度高,支持全雙工通信,與NE2000相兼容等特性,具有廣泛應用場合。以太網(wǎng)接口部分原理圖如圖2所示[2]。
圖2 以太網(wǎng)部分原理圖
2 系統(tǒng)軟件設計
本文中的軟件設計主要包括三個部分:CAN驅(qū)動通信程序,RTL8019AS驅(qū)動程序和以太網(wǎng)協(xié)議棧移植。程序的編寫在DSP集成開發(fā)環(huán)境CCS 3.3下完成。
2.1 CAN總線驅(qū)動
2.1.1 初始化
CAN模塊使用前必須初始化,初始化需要完成的主要工作有:引腳配置;郵箱配置;波特率配置;中段功能設置[3]。限于篇幅,初始化程序從略。
2.1.2 CAN發(fā)送
本文采用郵箱0進行數(shù)據(jù)的發(fā)送,郵箱0的ID在初始化函數(shù)中已設置(程序解釋以注釋的形式給出,下文同):
void CanSend (void){
ECanaMboxes.MBOX0.MDRH.all=0;
ECanaMboxes.MBOX0.MDRL.all=0x01; //發(fā)送數(shù)據(jù)賦值
ECanaRegs.CANTRS.bit.TRS0=1; //數(shù)據(jù)發(fā)送
if(ECanaRegs.CANTA.bit.TA0== 1)
//判斷郵箱中的數(shù)據(jù)是否發(fā)送成功
ECanaRegs.CANTA.bit.TA0= 1;
//清除發(fā)送響應寄存器中的標志
if(ECanaRegs.CANTA.bit.TA0== 0)
//等待發(fā)送響應標志被清除MessageTransferCountnet++; //發(fā)送次數(shù)計數(shù)
}
2.1.3 CAN接收
為保證數(shù)據(jù)能及時接收,像其他串行通信一樣,接收一般在中斷中完成:
void CanReceive (void){
MIV=(ECanaRegs.CANGIF0.bit.MIV0) (0x001f);//郵箱篩選
switch(MIV)
{
case 8: //郵箱號
SystermStateByte[0]=ECanaMboxes.MBOX8.MDRL.bit.OW_WORD;
//低字節(jié)
dGetLegMotorSpeedword[0]=ECanaMboxes.MBOX8.MDRL.bit.HI_WORD; //高字節(jié)
ECanaRegs.CANRMP.bit.RMP8=1; //清除接收標志位
}
實際工作中通過PCCAN軟件觀察到的CAN發(fā)送和接收數(shù)據(jù),如圖3所示。
圖3 CAN發(fā)送和接收數(shù)據(jù)
2.2 以太網(wǎng)驅(qū)動
RTL8019AS工作在網(wǎng)絡中的數(shù)據(jù)鏈路層,完成數(shù)據(jù)鏈路層及網(wǎng)絡層的協(xié)議轉換,數(shù)據(jù)的發(fā)送和接收等任務,主要有兩個基本函數(shù):數(shù)據(jù)幀的發(fā)送和接收函數(shù)[4]。
2.2.1 初始化函數(shù)
RTL8019AS 的初始化函數(shù)操作步驟依次為:
(1)使芯片處于停止工作模式;
(2)選中PAGE1,設置組播和MAC地址;
(3)選中PAGE0,使芯片處于正常工作模式;
(4)啟動芯片,開始工作并清除所有中斷標志。
2.2.2 數(shù)據(jù)包發(fā)送
RTL8019AS 發(fā)送數(shù)據(jù)包遵循IEEE 802.3 協(xié)議, 發(fā)送數(shù)據(jù)函數(shù)操作步驟依次為:
(1)設置以太網(wǎng)協(xié)議類型,目的地址、源地址;
(2)將數(shù)據(jù)幀發(fā)送到RTL8019AS 發(fā)送緩沖區(qū);
(3)進行數(shù)據(jù)包發(fā)送。
如圖4所示,完成了從源(192.168.0.250)到目的(192.168.0.160)的TCP傳輸[5?6]。
2.2.3 數(shù)據(jù)包接收
RTL8019AS 接收數(shù)據(jù)函數(shù)操作步驟依次為:
(1)進行中斷服務程序設置;
(2)產(chǎn)生中斷后,查看RTL8019AS 寄存器得知接收數(shù)據(jù)長度、存放地址等信息;
(3)使用遠程DMA將接收數(shù)據(jù)從RTL8019AS內(nèi)部RAM 移植到TMS320F28335內(nèi)部RAM。
圖4 以太網(wǎng)數(shù)據(jù)發(fā)送
3 結 語
本文使用通用控制器TMS320F28335在自帶眾多串行接口的基礎上外擴了CAN和以太網(wǎng)接口,既能根據(jù)工程實際需要使用某一兩種外設,又能完成各種協(xié)議的轉換,是一種低成本、應用性強的CAN總線和以太網(wǎng)設計方案。
參考文獻
[1] 李偉林,張曉斌,伍佳妮,等.基于以太網(wǎng)的ARINC429總線接口板的設計[J].計算機測量與控制,2009,17(5):921? 923.
[2] 馬岱,徐成杰.基于DSP和以太網(wǎng)的變頻器在線監(jiān)控系統(tǒng)[J].微計算機信息,2009(2):158?160.
[3] Texas Instruments. TMS320F281x data sheet [EB/OL]. [2007?04?10]. http:// www.ti.com.
[4] 唐鴻儒,丁偉.現(xiàn)場控制網(wǎng)絡技術展望[J].測控技術,2000,19(22):1?4.
[5] 王新權.基于DSP平臺的嵌入式系統(tǒng)以太網(wǎng)接口設計[J].青海師范大學學報:自然科學版,2008(2):44?46.
[6] 曹宇,魏豐,胡士毅.用51單片機控制RTL8019AS實現(xiàn)以太網(wǎng)通訊[J].電子技術應用,2003(1):21?24.