基于CAN總線(xiàn)與RS485的DSP通信接口設計
3.上位機PC串行通信軟件設計
上位機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所示。本文引用地址:http://dyxdggzs.com/article/156913.htm
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所示):
(1)在MCR寄存器中設置改變配置請求位:CANMCR=1000H;
(2)配置BCR寄存器:CANBCR2=0000H; CANBCR1=0157H;
(3)請求正常模式:CANMCR=0000H;
初始化郵箱可以按照如下步驟配置郵箱(如圖4所示):
(1)禁止郵箱寫(xiě)0到CANMDER:CANMDER=0000H;
(2)在CANMCR中設置改變數據域請求:CANMCR=0100H;
(3)改變郵箱內容:數據可以只在發(fā)送郵箱中設置;
(4)返回正常模式:CANMCR=0000H;
(5)使能郵箱:CANMDER=0004H;
4.2.2 發(fā)送消息
為了實(shí)現CAN模塊的消息發(fā)送,需要按照以下步驟配置發(fā)送過(guò)程:
(1)對發(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;
(2)設置TCR寄存器的TRS位,請求發(fā)送消息:TCR=0010H;
(3)等待發(fā)送確認(TCR寄存器的TA=1);
(4)重新設置TA和發(fā)送標志:TCR=1000H;
評論