一種DSP通信接口的設計和實(shí)現
隨著(zhù)科學(xué)技術(shù)的快速發(fā)展,過(guò)程控制領(lǐng)域在過(guò)去的兩個(gè)世紀里發(fā)生了巨大的變革。微處理器的普遍應用和計算機可靠性的提高,使分布式控制系統得到了廣泛的應用,由多臺計算機和一些智能儀表以及智能部件實(shí)現的分布式控制是其最主要的特征,而數字傳輸信號也在逐步取代模擬傳輸信號。隨著(zhù)微處理器的快速發(fā)展和廣泛的應用,數字通信網(wǎng)絡(luò )延伸到工業(yè)過(guò)程現場(chǎng)成為可能,產(chǎn)生了以微處理器為核心,使用集成電路代替常規電子線(xiàn)路,實(shí)施信息采集、顯示、處理、傳輸以及優(yōu)化控制等功能的智能設備。設備之間彼此通信、控制,在精度、可操作性以及可靠性、可維護性等都有更高的要求。由此,導致了現場(chǎng)總線(xiàn)的產(chǎn)生。
現場(chǎng)總線(xiàn)是指以工廠(chǎng)內的測量和控制機器間的數字通訊為主的網(wǎng)絡(luò ),也稱(chēng)現場(chǎng)網(wǎng)絡(luò )。也就是將傳感器、各種操作終端和控制器間的通訊及控制器之間的通訊進(jìn)行特化的網(wǎng)絡(luò )。原來(lái)這些機器間的主體配線(xiàn)是ON/OFF、接點(diǎn)信號和模擬信號,通過(guò)通訊的數字化,使時(shí)間分割、多重化、多點(diǎn)化成為可能,從而實(shí)現高性能化、高可靠化、保養簡(jiǎn)便化、節省配線(xiàn)(配線(xiàn)的共享)。
TI公司的TMS320LF2407型DSP微控制器以其處理能力強,外設功能模塊集成度高及存儲器容量大等特點(diǎn)廣泛應用于數字化控制與通信領(lǐng)域。CAN總線(xiàn)控制器與TMS320LF2407微控制器連接,可以實(shí)現CAN總線(xiàn)的通信。TMS320LF2407微控制器內嵌的異步串行口(SCI)支持CPU與其它使用標準格式的異步外設之間的數字通訊,通過(guò)RS-485接口可以方便地進(jìn)行DSP之間或DSP與PC機之間的異步串行通信。
RS-485是一種多發(fā)送器的接口標準,它擴展了RS-422A的性能,允許雙絞線(xiàn)上一個(gè)發(fā)送器驅動(dòng)32個(gè)負載設備,負載設備可以是被動(dòng)發(fā)送器、接收器或收發(fā)器,RS-485最大傳輸距離為1200m,最大傳送速率可達10Mb/s。因此,RS-485在遠程通信和多機總線(xiàn)系統中具有很大的吸引力,在實(shí)際設計中得到了廣泛應用。
本設計以PC機為主機,以TMS320LF2407為從機,實(shí)現了主從機之間的基于RS-485的串行通信,以及TMS320LF2407與CAN總線(xiàn)的通信。其中PC機與TMS320LF2407的RS-485通信,采用MAXIM公司生產(chǎn)的MAX48X/49X系列收發(fā)器芯片,完成RS-485標準接口通信。由于PC機上提供的是標準的RS-232C串行接口,因此,需要RS-232C/RS-485轉換器進(jìn)行接口轉換。如圖1所示。應用TMS320LF2407內嵌的CAN模塊和總線(xiàn)接口芯片PCA82C250,實(shí)現了TMS320LF2407與CAN總線(xiàn)的串行通信。
CAN 是Controller Area Network 的縮寫(xiě)(以下稱(chēng)為CAN),是ISO國際標準化的串行通信協(xié)議。在當前的汽車(chē)產(chǎn)業(yè)中,出于對安全性、舒適性、方便性、低公害、低成本的要求,各種各樣的電子控制系統被開(kāi)發(fā)了出來(lái)。由于這些系統之間通信所用的數據類(lèi)型及對可靠性的要求不盡相同,由多條總線(xiàn)構成的情況很多,線(xiàn)束的數量也隨之增加。為適應"減少線(xiàn)束的數量"、"通過(guò)多個(gè)LAN,進(jìn)行大量數據的高速通信"的需要,1986 年德國電氣商博世公司開(kāi)發(fā)出面向汽車(chē)的CAN 通信協(xié)議。此后,CAN 通過(guò)ISO11898 及ISO11519 進(jìn)行了標準化,現在在歐洲已是汽車(chē)網(wǎng)絡(luò )的標準協(xié)議。
2.TMS320LF2407的RS-485通信設計
TMS320F2407有較強的串行通信能力,設計到的控制類(lèi)寄存器較多,這使系統設計比較靈活。設計時(shí),首先對控制類(lèi)寄存器進(jìn)行初始化,包括數據格式、中斷使能、中斷優(yōu)先級、波特率等參數的設置。初始化完成以后,就可以發(fā)送和接收數據了。如果要發(fā)送數據,只要把數據寫(xiě)入SCITXBUF即可,由串行通信SCI模塊自動(dòng)完成發(fā)送數據。如果要接收數據,只要把SCIRXBUF的內容讀出即可(從引腳SCIRXD/IO移位來(lái)的信息由串行通信SCI模塊本身自動(dòng)去掉起始位、停止位、校驗位,并將數據放到SCIRXBUF中)。代碼如下:
初始化TMS320LF2407的SCI模塊
3.上位機PC串行通信軟件設計
串行通信是指 使用一條數據線(xiàn),將數據一位一位地依次傳輸,每一位數據占據一個(gè)固定的時(shí)間長(cháng)度。其只需要少數幾條線(xiàn)就可以在系統間交換信息,特別使用于計算機與計算機、計算機與外設之間的遠距離通信。串行通信是指計算機主機與外設之間以及主機系統與主機系統之間數據的串行傳送。使用串口通信時(shí),發(fā)送和接收到的每一個(gè)字符實(shí)際上都是一次一位的傳送的,每一位為1或者為0.
上位機PC采用高級語(yǔ)言VB的通信控件,實(shí)現串行通信。在VB5.0及以上版本中,提供了一個(gè)名為MSComm的通信控件,它為應用程序提供基本的串行通信功能,可以通過(guò)串行接口發(fā)送和接收數據。
PC串行口發(fā)送器輸出端和接收器輸入端的數據格式為幀信息格式,與TMS320LF2407的SCI格式相同。通信時(shí),雙方預先約定通信數據傳輸格式、傳輸速率及各自工作方式等。本文設計中雙方約定:波特率為9600bps。1幀信息格式為1個(gè)起始位、8個(gè)數據位和1個(gè)停止位。傳送方式:PC機采用查詢(xún)方式接收數據,TMS320F240采用中斷方式接收數據。
4.TMS320LF2407的CAN通信設計
TMS320LF2407 內嵌的CAN模塊,是一個(gè)16 位的外圍器件,其通信特性有:(1)完全支持CAN2.0B協(xié)議;(2)具有6個(gè)郵箱,其中mailbox2與mailbox3可按工程需求配置為接收或發(fā)送郵箱,數據長(cháng)度為0—8字節;(3)當發(fā)送出錯或仲裁過(guò)程中數據丟失時(shí),該控制器具有自動(dòng)重發(fā)功能;(4)能夠通過(guò)軟件編程實(shí)現自檢測功能。
4.1硬件設計
應用TMS320LF2407微控制器組成一個(gè)CAN總線(xiàn)網(wǎng)絡(luò ),進(jìn)行實(shí)時(shí)接收和發(fā)送數據。CAN控制器接口用于提供CAN協(xié)議控制器與物理總線(xiàn)之間的接口,總線(xiàn)接口芯片使用PHILIPS公司生產(chǎn)的PCA82C250,它可以方便的將CAN控制器連接到CAN總線(xiàn)網(wǎng)絡(luò )上。硬件系統分為兩層,第一層是CAN總線(xiàn)與TMS320LF2407的接口電路,實(shí)現CAN總線(xiàn)和TMS320LF2407的物理接口,第二層是TMS320LF2407與CAN總線(xiàn)的信息處理層。如圖2所示。
PCA82C250提供差分發(fā)送和對CAN控制器的差分接收,由于PCA82C250是5V電源供電,TMS320LF2407是用3.3V電源供電,因此采用電阻分壓來(lái)實(shí)現電平轉換。其中R2,R3分別取1KΩ和2KΩ,R1取10KΩ。對于二極管D1選用具有快速恢復能力的肖特基二極管IN5819。
4.2軟件設計
4.2.1初始化CAN模塊
CAN模塊的初始化包括初始化位時(shí)間和初始化郵箱。
初始化位時(shí)間可按如下步驟進(jìn)行(如圖3所示):
?。?)在MCR寄存器中設置改變配置請求位:CANMCR=1000H;
?。?)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;
?。?)請求正常模式:CANMCR=0000H;
初始化郵箱可以按照如下步驟配置郵箱(如圖4所示):
?。?)禁止郵箱寫(xiě)0到CANMDER:CANMDER=0000H;
?。?)在CANMCR中設置改變數據域請求:CANMCR=0100H;
?。?)改變郵箱內容:數據可以只在發(fā)送郵箱中設置;
?。?)返回正常模式:CANMCR=0000H;
?。?)使能郵箱:CANMDER=0004H;
4.2.2 發(fā)送消息
為了實(shí)現CAN模塊的消息發(fā)送,需要按照以下步驟配置發(fā)送過(guò)程:
?。?)對發(fā)送郵箱進(jìn)行初始化
禁止郵箱對CANMDER寫(xiě)0:CANMDER=0000H;
在CANMCR中設置改變數據域請求:CANMCR=0100H;
對發(fā)送郵箱設置消息ID: CANMSGIDnH="0E00H";CANMSGIDnL=000FH;
設置消息控制域,即對CANMSGCTRLn進(jìn)行寫(xiě)操作: CANMSGCTRLn="0008H";
創(chuàng )建消息并寫(xiě)到CANMBXnA、CANMBXnB、CANMBXnC和CANMBXnD中:
CANMBXnA=0ABCDH;CANMBXnB=0123H;CANMBXnC=0EF32H;CANMBXnD=6789H;
重新設置CANMCR的第8位,請求正常操作:CANMCR=0000H;
允許郵箱對CANMDER寄存器進(jìn)行寫(xiě)操作:CANMDER=0004H;
?。?)設置TCR寄存器的TRS位,請求發(fā)送消息:TCR=0010H;
?。?)等待發(fā)送確認(TCR寄存器的TA=1);
?。?)重新設置TA和發(fā)送標志:TCR=1000H;
4.2.3 接收消息
應用CAN模塊接收外界消息時(shí),需要對CAN控制器進(jìn)行如下設置:
?。?)設置局部接收屏蔽寄存器。 LAM1H=8000H;
?。?)設置郵箱標識符和控制。
禁止郵箱對MDER寫(xiě)0:CANMDER=0000H;
寫(xiě)MCR寄存器申請改變數據域請求:CANMCR=0100H;
對發(fā)送郵箱設置消息ID: CANMSGIDnH="0E00H";CANMSGIDnL=000EH;
設置消息控制域:CANMSGCTRLn=0008H;
重置MCR第8位,請求正常操作:CANMCR=0000H;
允許郵箱寫(xiě)MDER寄存器:CANMDER=0044H;
?。?)等待接收確認和CANIFR的郵箱中斷標志。
?。?)重置RMP和接收標志,必須對RMP寫(xiě)1: CANRCR="0040H";
圖3 初始化位時(shí)間編程流程圖
5.結論
本文作者的創(chuàng )新點(diǎn)是:在工業(yè)控制領(lǐng)域中,往往是由一臺主機控制多臺從機,上位機和下位機的遠距離通信通過(guò)串行通信實(shí)現。本設計綜合實(shí)現了PC主機與DSP從機的RS-485遠距離通信接口和DSP從機與CAN現場(chǎng)總線(xiàn)的數據傳輸接口設計,同時(shí)具備主從機的遠距離通信和CAN現場(chǎng)總線(xiàn)設備的實(shí)時(shí)通信功能,具有廣泛的應用前景。在設計中充分發(fā)揮了DSP的CAN模塊和SCI模塊的作用,使得接口設計簡(jiǎn)單,工作更加可靠。
評論