999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AT90CAN128的CAN總線節點設計與研究

2014-06-19 18:18:27金樹軍
現代電子技術 2014年9期
關鍵詞:單片機

金樹軍

摘 要: CAN總線在汽車電子、樓宇控制及其他工業控制領域中得到了廣泛應用,AVR型單片機在儀表、工業控制領域也得到了廣泛應用。主要介紹AVR型單片機AT90CAN128在CAN總線節點中的實現方案及具體技術路線,給出增強型CAN總線節點電路原理圖、主要程序設計方案,為開發人員快速應用提供必要的技術基礎。

關鍵詞: CAN總線節點; 單片機; 程序設計; 工業控制

中圖分類號: TN911.7?34 文獻標識碼: A 文章編號: 1004?373X(2014)09?0093?04

0 引 言

CAN是控制器局域網絡(Controller Area Network, CAN)的簡稱,是由研發和生產汽車電子產品著稱的德國BOSCH公司開發,并最終成為國際標準(ISO 11898),是國際上應用最廣泛的現場總線之一。在北美和西歐,CAN總線協議已經成為汽車計算機控制系統和嵌入式工業控制局域網的標準總線,并且擁有以CAN為底層協議專為大型貨車和重工機械車輛設計的J1939協議。

CAN總線目前已經在車輛、船舶等運輸業中;嵌入式機器控制、工廠自動化、過程自動化和發電等制造業中;電梯控制、嵌入式門控制、供暖控制、通風控制、空調控制等樓宇自動化中;醫療設備、重病監護等衛生保健中;分揀機、輸送機、加油站、自動取款機等行業中;舞臺控制、照明控制等娛樂行業中;煤礦安全監控系統等工業通信中得到廣泛應用。

AVR單片機做為一款單周期指令的單片機,具有簡單易學、費用低廉、功能強大等優點。目前已用于軍事、工業、家用電器、智能玩具、便攜式智能儀表和機器人制作等領域。廣泛用于空調控制板、打印機控制板、智能電表、智能手電筒、LED控制屏、醫療設備、GPS等領域或設備。AT90CAN128作為AVR單片機系列之一,不僅擁有AVR單片機本身的功能和資源,更兼具了CAN控制器功能。設計時,只在其外圍增加高速光電轉換器和CAN收發器等器件即可。下面就基于AT90CAN128的CAN總線節點設計進行詳細說明。

1 硬件設計

如圖1所示,CAN總線節點電路主要由光電耦合器HCPL0600、CAN收發器PCA82C251組成。兩個光電耦合器引出的CANTX、CANRX引腳分別與AT90CAN128單片機的TXCAN、RXCAN引腳連接。兩個光電耦合器起到不同節點之間電氣隔離的作用。需要特別說明的一點是光電耦合器部分電路所采用的兩個電源VCC和VDD必須也是完全隔離的,否則采用光電耦合器就失去了意義。電源的完全隔離可采用小功率電源隔離模塊或帶多5 V隔離輸出的開關電源模塊實現。這些電路雖然增加了節點的復雜性,但是卻提高了節點的穩定性和安全性,在CAN總線節點設計中是非常必要的。

PCA82C251的CANH、CANL引腳與CAN總線的接口部分也采用了一定的安全和抗干擾措施。PCA82C251的CANH和CANL引腳各自通過一個0 Ω的電阻與CAN總線相連,電阻可起到一定的緩沖作用,保護PCA82C251免受電流的沖擊。CANH和CANL與地之間分別并聯了一個30 pF的小電容,可以起到濾除總線上的高頻干擾和一定的防電磁輻射的能力。CANH和CANL與地之間分別接了一個瞬態抑制二極管,當CAN總線受瞬間的高能量沖擊時,它能以極高的速度(最高達1×10-12 s)使其阻抗驟然降低,同時吸收大電流,將其兩端間的電壓箝位在一個預定的數值上,從而確保后面的電路元件免受瞬態高能量的沖擊而損壞。CANH和CANL在連入總線之前,均通過一個可恢復保險絲,當總線上有大電流時,大電流產生的熱量使可恢復保險絲內的高分子材料迅速膨脹,切斷鏈狀導電通道,元件由低阻抗瞬變為高阻抗,阻斷電路,保護負載,在故障排除后,高分子材料自動收縮,導電通道重新鏈接,元件又自行恢復至原始狀態,從而實現“重復使用,無須更換,一勞永逸”之目的。CANH,CANL之間利用放電管,實現有限能量雷擊的防護。PCA82C251的Rs腳上接有一個斜率電阻,大小可根據總線通信速度適當調整,一般在16~140 kΩ之間。

為了增強CAN總線的驅動能力,當波特率一定時,延長CAN總線的通信距離,筆者根據實踐經驗,設計了如圖2所示的CAN總線信號增強電路,其設計核心思想是增加CANTXD的信號強度。實踐證明,此電路能夠延長通信距離30%以上。

圖2 CAN總線信號增強電路原理圖

2 軟件設計

筆者在軟件設計過程中使用了ICCV7 for AVR和AVR Studio 4.14。ICCV7 for AVR用來建立工程、編寫代碼、編譯代碼;生成可供AVR Studio 4.14調用的鏡像文件,即COF文件;生成可供AVR Studio 4.14下載的目標文件,即HEX文件。AVR Studio 4.14集成了匯編、編譯器以及調試器功能,筆者使用深圳微雪電子有限公司的USB AVR JTAG ICE XPII仿真器,結合AVR Studio 4.14進行軟件調試。

CAN總線節點的軟件設計主要包括CAN控制器的初始化程序、數據接收程序、數據發送程序。

本軟件設計是筆者在開發煤礦安全監控系統礦用本安型分站中驗證過的,讀者可根據本軟件設計進行配置,即可實現通信。

2.1 CAN控制器初始化

筆者設計CAN控制器初始化軟件時,硬件資源情況如下:AT90CAN128晶振頻率為7.372 8 MHz,CAN通信波特率為5 Kb/s,禁能屏蔽寄存器。

2.1.1 復位設計

CAN控制器的初始化工作流程如圖3所示。

只有在CAN控制器處于復位狀態時,才能對它進行相關配置。因此,初始化工作的第一步就是復位CAN控制器。可通過對CAN通用控制寄存器CANGCON賦值0x01使CAN此時判斷通用狀態寄存器CANGSTA的Enable/Standby模式位是否為Standby模式,若是,則繼續執行初始化程序的其他代碼,若不是,則重新判斷,直到是為止。此段程序代碼可參考如下:

//等待CAN控制器進入Standby模式

while(CANGSTA & 0x04);

設計人員可在此處做定時及判斷處理,以防止程序在此處死循環,不能執行其他程序。

圖3 CAN控制器初始化程序流程圖

復位郵箱的初始化工作包括對0~14個郵箱的標識符寄存器、標識符屏蔽寄存器、郵箱狀態寄存器、郵箱控制和數據長度寄存器以及數據存儲寄存器進行清零等工作。此段代碼可參考如下:

unsigned char MobChannel;

unsigned char MobData;

for (MobChannel = 0 ; MobChannel < 15 ; MobChannel++)

{

CANPAGE = (MobChannel << 4);

CANIDT4 = 0;

CANIDT3 = 0;

CANIDT2 = 0;

CANIDT1 = 0;

CANIDM4 = 0;

CANIDM3 = 0;

CANIDM2 = 0;

CANIDM1 = 0;

CANSTMOB = 0;

CANCDMOB = 0;

for(MobData = 0; MobData < 8; MobData++)

{

CANMSG = 0;

}

}

2.1.2 位定時寄存器設計

位定時寄存器的初始化工作包括對CANBT1、CANBT2、CANBT3的這三個寄存器的配置。CANBT1可配置波特率預分頻器,CANBT2可配置同步跳轉寬度和傳輸時間段,CANBT3可配置相位段1、相位段2和采樣點。應用中實際配置如下:

//波特率為5K

CANBT1 = 0x7e;

//同步跳轉寬度為32 μs

//傳輸時間段為64 μs

CANBT2 = 0x6e;

//相位段1為16 μs

//相位段2為64 μs

//采樣點為3,即總線采樣3次

CANBT3 = 0x7b;

此時,可通過CAN定時器控制寄存器關閉CAN定時器,使其處于空閑狀態。

2.1.3 郵箱寄存器設計

郵箱寄存器設計包括接收數據郵箱寄存器設計和發送郵箱寄存器設計。接收數據郵箱寄存器的初始化工作包括郵箱地址寄存器配置、郵箱狀態寄存器配置、郵箱消息和DLC寄存器配置、標識符寄存器配置以及標識符屏蔽寄存器配置。

筆者在應用中實際配置如下:

CANPAGE=0x00;

郵箱地址寄存器配置為0x00,即選擇郵箱地址為0,采用自動增加索引指針方式,索引指針默認為0。

選擇好郵箱地址后才能對郵箱的其他寄存器進行配置。

CANSTMOB=0x00;

郵箱狀態寄存器配置為0x00。使郵箱數據長度在設定的DLC范圍內,處于未發送和未接收狀態,位值監測標識、位填充標識、CRC校驗標識、幀格式標識以及應答狀態均處于正常狀態。

CANCDMOB = 0x18;

郵箱消息和DLC寄存器配置為0x18。選擇CAN2.0B工作模式,數據長度為8,當數據超過8時,只有8個數據有效。

//CAN標識符寄存器

CANIDT4 = 0x00;

CANIDT3 = 0x00;

CANIDT2 = 0x00;

CANIDT1 = 0x00;

//CAN標識符屏蔽寄存器

CANIDM4 = 0x00;

CANIDM3 = 0x00;

CANIDM2 = 0x00;

CANIDM1 = 0x00;

如上,配置標識符寄存器、標識符屏蔽寄存器均為0x00,不對數據進行濾波處理,接收數據后根據實際情況處理。設計人員可根據自身項目實際需要進行濾波設計。

發送數據郵箱寄存器的初始化工作包括郵箱地址寄存器配置、郵箱狀態寄存器配置以及郵箱消息和DLC寄存器配置。

CANPAGE=(1<< 4);

郵箱地址寄存器配置為0x10,即選擇郵箱地址為1,采用自動增加索引指針方式,索引指針默認為0。

CANSTMOB = 0x40;

郵箱狀態寄存器配置為0x40。提前置位TXOK位,使郵箱處于數據發送完成狀態。

CANCDMOB = 0x18;

郵箱消息和DLC寄存器配置為0x18。選擇CAN2.0B工作模式,數據長度為8,當數據超過8時,只有8個數據有效。這樣配置使得CAN總線節點接收和發送的數據類型保持一致。

2.1.4 中斷寄存器設計

中斷寄存器的初始化工作包括中斷使用寄存器配置和郵箱使能寄存器配置。

筆者在應用中實際配置如下:

CANGIE=0xef;

中斷使用寄存器配置為0xef。使能全局中斷、接收中斷、總線關閉中斷、郵箱錯誤中斷、幀緩沖區中斷、通用錯誤中斷、CAN定時器溢出中斷,禁能發送中斷。

CANIE1=0x00;

CANIE2=0x01;

使能地址為0的郵箱中斷,禁能地址為1~14的郵箱中斷。

2.1.5 結束設計

在這個設計里主要包括郵箱優先級配置、郵箱接收使能配置、CAN控制啟動配置。

CANHPMOB = 0x00;

CANPAGE = 0x00;

CANCDMOB |= 0x80;

如上配置,使地址為0的郵箱優先級最高,同時,使能地址為0的郵箱的接收功能。

CANGCON |=0x02;

通過配置CAN通用控制寄存器的Enable / Standby為1,并等待CANGSTA的ENFG狀態為1時,使CAN控制器進入正常工作模式。至此,CAN控制器初始化工作完成。

2.2 數據接收程序設計

數據接收程序負責每個CAN節點數據的接收以及簡單的數據處理。AT90CAN128的CAN控制器主要有兩種數據接收方式:中斷接收方式和查詢接收方式。筆者在應用中使用的是中斷方式。

AT90CAN128的CANIT中斷段號是19,在定義函數時,可采用如下方式:

#pragma interrupt_handler CanIsr:19

void CanIsr(void)

{

(此處略去接收數據程序代碼)

}

當有總線上有數據發送,即可進入這個中斷函數。

2.3 數據發送程序設計

數據發送程序負責CAN節點數據的發送。 首先將待發送的數據按特定格式送入發送緩存區中,然后啟動發送,等待發送成功,清除發送完成標志位即可。因該功能設計簡單,這里不做贅述。

3 結 語

本文通過CAN總線節點硬件電路設計及分析,為設計人員提供了實際可行的CAN總線電路原理,并通過各種保護電路的設計,增強了CAN總線節點的抗干擾能力、抗高電壓能力、抗大電流能力,提高了CAN總線節點的整體性能。尤其是通過信號增強電路,提高了CAN總線節點的信號穩定性、可靠性,大大延長了CAN總線節點的通信距離,使CAN總線節點因保護電路受到的損失得到彌補和提高。筆者應用本電路原理在煤礦、金屬礦山監控分站中已經得到成功應用。實踐證明,該電路性能穩定、可靠,技術指標完全滿足工業控制、通信領域要求。

本文通過AT90CAN128單片機CAN控制器驅動程序設計、發送程序設計、郵箱清理程序設計、中斷接收程序設計,為設計人員提供了實際可行的程序設計方案。設計人員可按照文中給出的晶振、波特率等參數進行設計,即可實現CAN總線節點之間的通信,大大節省了設計人員的開發時間。

本文設計和研究的CAN總線節點技術和AT90CAN128單片機的CAN控制器程序設計技術都是目前各領域常用的基本技術,CAN總線的核心技術,即多主通信技術,是工業控制和通信領域解決關鍵問題的重點和難點,限于篇幅,這里不作贅述。本文所作論述,難免存在疏漏和不足,有待以后的進一步實踐和研究。

參考文獻

[1] 李真花,崔健.CAN總線輕松入門與實踐[M].北京:北京航空航天大學出版社,2010.

[2] 張培仁.CAN總線設計及分布式控制[M].北京:清華大學出版社,2012.

[3] 馬潮.AVR單片機嵌入式系統原理與應用實踐[M].2版.北京:北京航空航天大學出版社,2012.

[4] 王衛東.模擬電子技術基礎[M].北京:電子工業出版社,2010.

[5] 許莉婭,段帥君,李傳南.基于Verilog HDL語言的CAN總線控制器設計及驗證[J].現代電子技術,2012,35(10):43?46.

[6] 張輝.基于C8051F040單片機的CAN總線測試模式研究[J].現代電子技術,2012,35(6):43?44.

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 国产精品嫩草影院视频| 91久久国产综合精品女同我| 亚洲综合香蕉| 试看120秒男女啪啪免费| 亚洲首页在线观看| 99久久精品免费看国产电影| 理论片一区| 国产区在线看| 伊人蕉久影院| 日韩在线视频网| 国产精品永久免费嫩草研究院 | 在线无码九区| 国产精品一区不卡| 国产成人免费高清AⅤ| 毛片国产精品完整版| 亚洲高清日韩heyzo| 天堂亚洲网| 国产精品女主播| 欧美日韩资源| 玖玖免费视频在线观看| 国产一区二区三区在线精品专区| 久久亚洲国产一区二区| 日韩中文精品亚洲第三区| 久久亚洲日本不卡一区二区| 四虎影视永久在线精品| 亚洲综合激情另类专区| 91视频区| 手机精品福利在线观看| 国产理论一区| 国产黑丝视频在线观看| 欧美一级色视频| 国产久草视频| 天天摸天天操免费播放小视频| 亚洲啪啪网| 福利视频一区| 国模极品一区二区三区| 欧美亚洲国产精品第一页| 国产成人亚洲无码淙合青草| 国产成人亚洲综合A∨在线播放| 亚洲熟妇AV日韩熟妇在线| 5555国产在线观看| 欧美成人免费| 亚洲AⅤ永久无码精品毛片| 波多野结衣久久精品| 精品在线免费播放| 91在线丝袜| 91久久青青草原精品国产| 国产成人亚洲欧美激情| 国产高清不卡视频| 欧美激情第一欧美在线| 亚洲日本精品一区二区| 欧美精品另类| 精品国产自| 国产区人妖精品人妖精品视频| 久久综合五月| 高清乱码精品福利在线视频| 国产偷倩视频| 在线无码私拍| 伊人查蕉在线观看国产精品| 午夜a视频| 在线无码av一区二区三区| 久一在线视频| 久久伊伊香蕉综合精品| 欧美日韩国产一级| av免费在线观看美女叉开腿| 免费观看成人久久网免费观看| 国产内射一区亚洲| 亚洲成人在线网| 色呦呦手机在线精品| 波多野结衣AV无码久久一区| 永久成人无码激情视频免费| 亚洲欧美激情小说另类| 久久无码av三级| 欧美成人午夜视频免看| 日本免费高清一区| 中文无码精品A∨在线观看不卡| 欧美一级专区免费大片| 久久不卡国产精品无码| 亚洲日韩每日更新| 啪啪国产视频| 成年av福利永久免费观看| 欧美一级高清免费a|