国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

基于單片機(jī)的某車型CAN總線系統(tǒng)設(shè)計(jì)

發(fā)布時(shí)間:2010-7-28 12:52    發(fā)布者:lavida
關(guān)鍵詞: CAN總線 , 車型 , 單片機(jī)
現(xiàn)場(chǎng)總線技術(shù)是目前自動(dòng)化控制領(lǐng)域發(fā)展比較迅速的一門技術(shù),其中CAN(Controller Area Network)總線[2]是在國(guó)際上應(yīng)用最廣泛的現(xiàn)場(chǎng)總線之一。近幾年隨著汽車電子行業(yè)的發(fā)展,現(xiàn)代汽車中CAN總線已經(jīng)成為必須采用的裝置之一。本文以ATMEL公司新近生產(chǎn)的一款內(nèi)置CAN控制器的單片機(jī)——AT90CAN128為基礎(chǔ),設(shè)計(jì)了一款車載CAN總線系統(tǒng),通過CAN智能測(cè)控儀表對(duì)車中部分單元參數(shù)量進(jìn)行實(shí)時(shí)監(jiān)控,使各單元之間協(xié)調(diào)運(yùn)轉(zhuǎn)。另外,傳輸線束大大簡(jiǎn)化,可靠性得到了極大的提高,有效節(jié)約了線束安裝空間和系統(tǒng)成本。  

1 AT90CAN128特性概述  

1.1 基本特性  

AT90CAN128[3]是基于AVR RISC結(jié)構(gòu)的8位低功耗CMOS微處理器,它采用了先進(jìn)的指令集以及單周期指令執(zhí)行時(shí)間,其數(shù)據(jù)吞吐率高達(dá)1 MIPS/MHz,其內(nèi)核具有豐富的指令集和32個(gè)通用工作寄存器。所有寄存器都直接與ALU相連接。通過將8位RISC CPU與系統(tǒng)內(nèi)可編程的Flash集成在一個(gè)芯片內(nèi),為許多嵌入式控制應(yīng)用提供了靈活而低成本的方案。  

1.2 內(nèi)置CAN控制器概述  

AT90CAN128內(nèi)置有完全符合CAN2.0A和2.0B標(biāo)準(zhǔn)協(xié)議的CAN控制器。采用MOb(消息對(duì)象)方式進(jìn)行數(shù)據(jù)的發(fā)送和接收,共有15個(gè)MOb,它們具有相同的屬性:有11位標(biāo)識(shí)符(2.0A協(xié)議),也可擴(kuò)展至29位(2.0B議);8位數(shù)據(jù)緩沖(靜態(tài)分配);Tx,Rx幀  
緩沖或自動(dòng)響應(yīng)配置;時(shí)間標(biāo)識(shí)。  

MOb是一個(gè)CAN消息幀的描述符。它包括處理一個(gè)CAN消息幀的所有信息。這意味著一個(gè)MOb可以看成一個(gè)對(duì)象,來描述一條CAN消息。MOb的數(shù)目是從0到14。它們相互獨(dú)立,但在多重比較的時(shí)候,低位的MOb會(huì)獲得優(yōu)先權(quán)。每個(gè)MOb都被安置在一個(gè)頁中來保存。頁的序號(hào)就是MOb的序號(hào)。  

2 車載CAN總線控制系統(tǒng)的設(shè)計(jì)  

由于對(duì)實(shí)時(shí)性要求比較高,所以采用高速CAN總線,信息傳輸速度為500kbps,連接的主要對(duì)象有:駕駛員計(jì)算機(jī)、發(fā)動(dòng)機(jī)、自動(dòng)變速器、安全氣囊、儀表信號(hào)采集系統(tǒng)、聯(lián)合制動(dòng)系統(tǒng)等。由于各個(gè)節(jié)點(diǎn)作用不同,所以在硬件搭建和軟件設(shè)計(jì)以及通信協(xié)議的制定上都采用了相應(yīng)的方案。下面以聯(lián)合制動(dòng)單元為例,做具體分析。  

聯(lián)合制動(dòng)單元接收由駕駛員計(jì)算機(jī)終端發(fā)送的CAN總線消息命令,根據(jù)對(duì)液力制動(dòng)扭矩、機(jī)械制動(dòng)扭矩、合成扭矩等參數(shù)進(jìn)行檢測(cè)的狀態(tài),經(jīng)過電液控制算法計(jì)算,實(shí)現(xiàn)前驅(qū)、后驅(qū)制動(dòng)控制。對(duì)正常制動(dòng)回路油位、緊急制動(dòng)回路油位的報(bào)警等信息,通過CAN總線反饋給駕駛員計(jì)算機(jī)終端。  

2.1 聯(lián)合制動(dòng)單元硬件電路組成  

以AT90CAN128單片機(jī)作為控制系統(tǒng)核心,外圍設(shè)有8路光隔模擬量輸入、4路模擬量輸出、多路光隔開關(guān)量輸入、輸出、LED報(bào)警及CAN總線收發(fā)器,總線的接口芯片選用的是Philips公司的PCA82C250。  

2.2 通信協(xié)議制定  

2.2.1 各終端消息標(biāo)識(shí)符的定義  

采用CAN擴(kuò)展幀的29位標(biāo)識(shí)符進(jìn)行定義,其中P為3位優(yōu)先級(jí);R為保留擴(kuò)展位;8位的BW為報(bào)文類型代碼;8位的BD為目標(biāo)地址或報(bào)文類型擴(kuò)展碼;8位的BY為發(fā)送報(bào)文源地址。部分設(shè)備節(jié)點(diǎn)名稱和分配地址如下:主駕駛員終端地址10、副駕駛員終端地址20、聯(lián)合制動(dòng)單元地址30。  

2.2.2 各消息類型和命令值內(nèi)容的定義  

駕駛員計(jì)算機(jī)終端對(duì)聯(lián)合制動(dòng)單元的控制消息內(nèi)容為2個(gè)字節(jié)——命令類型和命令值。命令類型包括:狀態(tài)查詢命令(數(shù)據(jù)0x1,命令值0x0)、前/后驅(qū)制動(dòng)命令(數(shù)據(jù)0x2/0x3,命令值0x0)、聯(lián)合制動(dòng)單元前/后驅(qū)制動(dòng)信息確認(rèn)(數(shù)據(jù)0x4/0x5,命令值0x0)等。  
聯(lián)合制動(dòng)單元提供給駕駛員計(jì)算機(jī)終端的消息內(nèi)容包括:聯(lián)合制動(dòng)單元狀態(tài)信息(7字節(jié),分別為液力制動(dòng)扭矩、機(jī)械制動(dòng)扭矩、合成扭矩、速度以及緊急回路和正常油壓的數(shù)值,以及正常制動(dòng)回路油位和緊急制動(dòng)回路油位的報(bào)警狀態(tài))、聯(lián)合制動(dòng)單元報(bào)警信息(2字節(jié),分別為正常制動(dòng)回路油位報(bào)警和緊急制動(dòng)回路油位的報(bào)警)、聯(lián)合制動(dòng)單元制動(dòng)返回消息(2字節(jié),分別為收到的前驅(qū)或后驅(qū)制動(dòng)命令的命令數(shù)據(jù)和命令值)等。  

2.3 軟件設(shè)計(jì)(CAN總線通訊部分)  

2.3.1 初始化部分  

初始化前將CAN通用控制寄存器的最高位置1(復(fù)位模式)。完成后,回到操作模式。  

下面給出了CAN控制器的初始化程序:  

void CAN_INIT ( void )  
{  
CANGCON = 0x80 ; /*進(jìn)入復(fù)位模式并且復(fù)位MOb*/  
while ( ENFG == 1 ) ; /*測(cè)試CANGSTA中的ENFG位是否為0*/  
CANGIE = 0xB0 ; /*使能所有中斷及接收、發(fā)送中斷*/  
CANIE2 = 0xFF ; /*MOb 0"7中斷使能*/  
CANIE1 = 0x00 ; /*MOb 8"14中斷禁止*/  
CANBT1 = 0x02 ; /*設(shè)置波特率為500kbps*/  
CANBT2 = 0x20 ;   
CANBT3 = 0x01 ;   
CANTCON = 0x8F ; /*設(shè)置定時(shí)器預(yù)定標(biāo)*/  
/*以“聯(lián)合制動(dòng)單元狀態(tài)查詢消息”為例*/  
CANPAGE = TX_PAGE ; /*指定此消息的MOb頁(寄存器中的高4位)*/  
CANCDMOB = 0x17 ; /*禁止?fàn)顟B(tài),IDE位為1表示擴(kuò)展幀,數(shù)據(jù)長(zhǎng)度代碼為7*/  
CANIDT1 = 0x84 ; /*標(biāo)識(shí)符設(shè)置*/  
CANIDT2 = 0xB1 ;  
CANIDT3 = 0x18 ;  
CANIDT4 = 0xF2 ;  
CANIDM1 = 0xFF ; /*標(biāo)識(shí)符屏蔽設(shè)置*/  
CANIDM2 = 0xFF ;  
CANIDM3 = 0xFF ;  
CANIDM4 = 0xFF ;  
CANGCON = 0x02 ; /*進(jìn)入操作模式*/  
While ( ENFG == 0 ) ; /*測(cè)試CANGSTA中的ENFG位是否為1*/  
}  

2.3.2消息的發(fā)送部分  

消息的發(fā)送均采用中斷方式實(shí)現(xiàn)。首先通過設(shè)置CANPAGE寄存器來指定被發(fā)送的頁數(shù),將數(shù)據(jù)裝載到CANMSG寄存器中,然后由CANCDMOB寄存器來控制發(fā)送動(dòng)作,將消息發(fā)送出去,同時(shí)將觸發(fā)CANSTMOB中的TXOK中斷。  

下面以協(xié)議中的“聯(lián)合制動(dòng)單元狀態(tài)查詢命令”為例,給出了發(fā)送程序:  

void CAN_TX ( void )  
{  
CANPAGE = TX_PAGE ; /*指定此消息的MOb頁(寄存器中的高4位)*/  
CANMSG = 0x01 ; /*裝載消息數(shù)據(jù)*/  
CANMSG = 0x00 ; /*裝載消息命令值*/  
CANCDMOB = 0x52 ; /*發(fā)送狀態(tài),IDE位為1表示擴(kuò)展幀,數(shù)據(jù)長(zhǎng)度代碼為2*/  
}  
void CAN_TX_INTER ( void ) /*發(fā)送中斷子程序*/  
{  
If ( ( CANSTMOB & 0x40 ) == 0x40 ) /*發(fā)送中斷*/  
{  
CANSTMOB & = 0xBF ; /*清TXOK位*/  
CANCDMOB = 0x12; /*停止發(fā)送*/  
}  
}  

2.3.3消息的接收部分  

消息的接收同樣采用中斷方式實(shí)現(xiàn)。先設(shè)置CANPAGE寄存器來指定接收的頁數(shù),隨后由CANCDMOB寄存器來控制接收動(dòng)作,當(dāng)有消息到達(dá)時(shí),將觸發(fā)CANSTMOB中的RXOK中斷,消息中的數(shù)據(jù)將被裝載到CANMSG寄存器中。

下面以協(xié)議中的“接收聯(lián)合制動(dòng)單元狀態(tài)信息”為例,給出了接收程序:  

void CAN_RX ( void )  
{  
CANPAGE = RX_PAGE ; /*指定此消息的MOb頁(寄存器中的高4位)*/  
CANCDMOB = 0x97 ; /*接收狀態(tài),IDE位為1表示擴(kuò)展幀,數(shù)據(jù)長(zhǎng)度代碼為7*/  
}  
void CAN_RX_INTER ( void ) /*接收中斷子程序*/  
{  
If ( ( CANSTMOB & 0x20 ) == 0x20 ) /*接收中斷*/  
{
CANSTMOB & = 0xDF ; /*清RXOK*/  
For ( i = 0 ; i }  
}  

4 結(jié)束語  

與目前同類型的單片機(jī)相比較,AT90CAN128在數(shù)據(jù)采集、PWM(快速PWM模式)等設(shè)計(jì)中都有其明顯的優(yōu)勢(shì),特別是內(nèi)置了CAN控制器,這讓它在現(xiàn)代自控領(lǐng)域的發(fā)展前景十分樂觀。通過實(shí)踐證明,該車載CAN總線系統(tǒng)運(yùn)行良好,完全可以達(dá)到預(yù)期的功能。  

本文作者創(chuàng)新點(diǎn):本文由于采用了AT90CAN128單片機(jī),使得該CAN總線系統(tǒng)的設(shè)計(jì)方法與傳統(tǒng)的CAN總線網(wǎng)絡(luò)設(shè)計(jì)思路有所不同,內(nèi)置CAN控制器可大大降低設(shè)備成本、簡(jiǎn)化硬件結(jié)構(gòu)、通信效率加強(qiáng)、提高了安全性以及可靠性。軟件設(shè)計(jì)上可通過對(duì)MOb的配置,實(shí)現(xiàn)消息隊(duì)列的設(shè)定,這種方法更加的靈活、易懂。
本文地址:http://m.qingdxww.cn/thread-17500-1-1.html     【打印本頁】

本站部分文章為轉(zhuǎn)載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé);文章版權(quán)歸原作者及原出處所有,如涉及作品內(nèi)容、版權(quán)和其它問題,我們將根據(jù)著作權(quán)人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評(píng)論 登錄 | 立即注冊(cè)

廠商推薦

  • Microchip視頻專區(qū)
  • 使用SAM-IoT Wx v2開發(fā)板演示AWS IoT Core應(yīng)用程序
  • 使用Harmony3加速TCP/IP應(yīng)用的開發(fā)培訓(xùn)教程
  • 集成高級(jí)模擬外設(shè)的PIC18F-Q71家族介紹培訓(xùn)教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號(hào) | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: BLACKED太粗太长| 思思久99久女女精品| 亚洲综合黄色| 日本一区二区三区在线观看视频| 亚洲草逼| 亚洲美日韩| 菠萝菠萝蜜视频在线看1| 绿巨人www| 伊人电院网| 日本欧美一级| 天堂中文字幕在线| 婷婷中文在线| 99精品在线观看| 日韩欧美视频一区二区在线观看| 亚洲一区二区在线播放| 日本一区二区三区免费在线观看 | 青娱乐在线一区| 欧美一级第一免费高清| 午夜毛片免费看| 亚洲精品久久久久久婷婷| 超碰免费视频部落格| 无码国产成人777爽死| 欧美日本在线视频| 日韩在线视频精品| 四虎影院新地址| 99爱在线精品视频免费观看9| 日本欧美久久久久免费播放网| 手机国产精品一区二区| 青青青在线免费| 中文字幕不卡| 中文字幕久精品免费视频| 久久精品国产福利电影网| 欧美日韩精品福利在线观看| 欧美一级性视频| 手机能看的黄色网站| 爱很烂qvod| 涩涩涩涩爱网站| 亚洲精品伊人久久久久| 香蕉大成网人站在线| 在线观看免费亚洲| 久久偷拍人|