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

基于C8051F040的CAN總線與RS-232通信設計

2014-01-16 05:57:42盛偉荃曾連蓀
電子設計工程 2014年13期
關鍵詞:單片機設計

盛偉荃,曾連蓀

(上海海事大學 上海 201306)

目前工業設備之間的通信很多采用RS-232接口,但由于RS-232通信距離短、接口易損,而且只能進行點到點通信,不能直接組成多點通信網絡。而CAN通信速率高、容易實現、且性價比高等諸多特點,本文介紹一種可以實現RS-232與CAN總線通信的方法,以更好地適應現代工業發展的需要。

控制器局域網CAN (Controller Area Network)是德國Bosch公司為解決現代汽車中眾多的控制與測試儀器之間的數據交換而應用開發的一種通信協議。在國外,尤其是歐洲,CAN網絡已被廣泛地應用在汽車上,如BENZ、BMW、PORSCHE、ROLLS、ROYCE、JAGUAR 等車[1]。

它是一種串行通信網絡,支持分布式實時控制,最大傳輸速度可達1 Mbit/s,最大傳輸距離為10 km。CAN規范已被ISO國際標準組織制訂為國際標準,即CAN標準,現在最常用的是2.0標準,分為2.0A和2.0B。其區別僅在通信數據位數,前者是11位的標準幀,后者是29位的擴展幀。CAN協議建立在國際標準組織的開放系統互連參考模型基礎上的,主要工作在數據鏈路層和物理層,用戶可在其基礎上開發適合系統實際需要的應用層通信協議[2]。而串口 RS-232作為標準計算機串行接口,與 CAN網的結構、通信協議、傳輸特性等方面都不相同,所以不同設備間無法進行直接通信。因此實現二者之間的信息數據交互成為問題的關鍵。

本設計完成了CAN總線與RS-232軟件設計。本設計的創新點是:CAN總線與RS-232接口數據通信速率以及通信幀格式都不同,解決了這兩點不同,從而實現了數據在CAN總線與RS-232接口之間的交互傳輸。本文完成了基于C8051F040單片機控制的CAN與RS-232轉換的研究與設計,設計了C8051F040單片機對RS-232串口和CAN總線的控制,解決了CAN總線與RS-232接口數據通信速率以及通信幀格式不同的技術問題,實現了RS-232接口數據與CAN總線數據的相互傳輸。

1 概述

1.1 CAN總線

Silicon Labs CAN的工作位速率可達1M位/秒,實際速率可能受CAN總線上所選擇的傳輸數據的物理層的限制。CAN處理器有32個消息對象,可以被配置為發送或接收數據。輸入數據、消息對象及其標識掩碼存儲在CAN消息RAM中。

標準CAN的標志符長度是11位,而擴展格式CAN的標志符長度可達29位。CAN協議2.0A版本規定CAN控制器必須有一個11位的標識符。而2.0B版本中規定,CAN控制器的標志符長度可以是11位或者29位。遵循CAN2.0B協議的CAN控制器可以發送和接收11位標識符的標準格式報文或29位標識符的標準格式報文。如果禁止CAN2.0B,則CAN控制器只能發送和接收11位標識符的標準格式報文,而忽略擴展格式的報文結構,但不會出現錯誤[3]。C8051F040所集成的CAN控制器為2.0B。

數據幀是攜帶數據由發送器至接收器的幀,是CAN的4種幀格式之一,這4種幀格式分別是數據幀、遠程幀、出錯幀和超載幀,其中數據幀結構如圖1所示[4]。

圖1 數據幀Fig.1 Data frame

CAN總線數據幀由7個不同的位場組成:幀起始(stsrt of frame)、仲裁場(arbitration frame)、控制場(control frame)、數據場(data frame)、CRC 場(CRCframe)、應答場(ACK frame)和幀結尾(end of frame)。數據場的長度可以為0。

1)幀起始:標志數據幀的起始,僅由一個“顯性”位組成,只在總線空閑時才允許節點開始發送信號;2)仲裁場:標準格式幀與擴展格式幀的仲裁場格式不同。標準格式里,仲裁場由11位識別符和遠程發送請求位組成,識別符位為ID-28~ID-18。擴展格式里,仲裁場包括29位識別符、替代遠程請求位、識別符擴展位和遠程發送請求位。其識別符為ID-28~ID-0;3)控制場:由6個位構成,前2位為保留位,為顯性,后4位為數據長度碼,表示數據場中數據的字節數,必須在0~8范圍內變化;4)數據場:由被發送數據組成,數目為控制場中決定的0~8個字節,第一個字節的最高位首先被發送;5)CRC場: 包括CRC序列和 CRC界定符;6)ACK場:長度為2位,包含應答間隙和應答界定符;7)幀結尾:由7個位“隱形”位組成,此期間無位填充[5]。

1.2 RS-232

RS-232是PC機與通信工業中應用最廣泛的一種串行接口,具有連線簡單、通訊距離長等優點。同樣也有一些缺點,接口的信號電平值較高,易損壞接口電路的芯片,傳輸速率較低,傳輸距離有限等。RS-232被定義為在低速率串行通訊中增加通訊距離的單端標準。RS-232采取不平衡傳輸方式,即所謂單端通訊。UART通信可用查詢TI和RI或通過中斷來控制通信。UART有兩種中斷源:數據發送完畢時,TI置1;數據完整接受到時,RI置1。TI和RI中任何一個標志位置1,均能引發UART中斷。TI和RI中斷標志位需軟件清0[6]。

2 系統硬件描述

Cygnal公司的51系列單片機C8051F040是集成在一塊芯片上的混合信號系統級單片機,在一個芯片內集成了構成一個單片機數據采集或控制的智能節點所需要的幾乎所有模擬和數字外設以及其他功能部件,代表了目前8位單片機控制系統的發展方向。芯片上有1個12位多通道ADC,2個12位DAC,2個電壓比較器,1個電壓基準,1個32kB的FLASH存儲器,與MCS-51指令集完全兼容的高速CIP-51內核,峰值速度可達25MIPS,并且還有硬件實現的UART串行接口和完全支持CAN2.0A和CAN2.0B的CAN控制器。

控制器局域網(CAN2.0B)控制器,具有32個消息對象,每個消息對象有其自己的標識全速、非侵入式的在系統調試接口 (片內)。C8051F040器件內部有一個控制器局域網(CAN)控制器,使用CAN協議實現串行通信。該CAN控制器符合 Bosch規范 2.0A(基本 CAN)和 2.0B(全功能 CAN),方便了CAN網絡通信設計。CAN控制器包含一個CAN核、消息RAM(獨立于C8051的RAM)、一個消息處理狀態機以及控制寄存器。CAN控制器可以工作在高達1M位/秒的位速率。Silicon Labs的CAN有32個消息對象,每個消息對象有其自己的標識掩碼,該標識掩碼用于對接收到的消息進行過濾。輸入數據、消息對象和標識掩碼存儲在CAN消息RAM中。與數據發送和接收過濾有關的所有協議處理均由CAN控制器完成,不需C8051 MCU干預。這就使得用于CAN通信的CPU帶寬最小。C8051通過特殊功能控制器(SFR)配置CAN控制器,讀取接收的數據,寫入要發送的數據。

C8051F040的MCU內部有兩個增強型全雙工UART、一個增強型SPI總線和SMBus/I2C。每種串行總線都完全用硬件實現,都能向CIP-51產生中斷,因此需要很少的CPU干預。這些串行總線不“共享”定時器、中斷或端口I/O等資源,所以可以使用任何一個或同時使用多個。

CAN總線數據和RS-232串口數據的速率、數據格式都不同,為實現相互傳輸的功能需求,就需要RAM緩存。硬件結構圖如圖2所示。

圖2 系統硬件結構圖Fig.2 Structure diagram of the hardware system

3 軟件設計

系統采用Keil uVision4軟件編程,Keil uVision4是ARM公司推出軟件開發平臺,其編譯器、調試工具實現與ARM器件的完美匹配。程序由初始化和死循環兩部分構成。初始化完成對器件數據設置,循環完成數據在RS-232和CAN總線之間的雙向通信。

3.1 初始化

初始化就是通過單片機向其片內的各個寄存器寫入控制字的過程。void RS232_INI()函數設置UART為模式1,8位可變波特率通信。void CAN_INI()函數用來初始化CAN總線接收、發送信道,并設置波特率。

3.2 RS-232轉CAN總線

RS-232傳輸1字節,而CAN總線傳輸的是8字節,這要求在通信過程中實現數據匹陪、格式匹配。該模塊采用,在串口接收中斷中,直接把接收到的串口數據存到8字節的緩存中,計數滿八位,則標志位置1,主函數中調用函數send_can1(),將數據發送到CAN總線。從而實現將數據從RS-232傳輸到CAN總線的功能。流程圖如圖3所示。

圖3 RS-232到CAN的流程圖Fig.3 Flow chart RS-232 to CAN

3.3 CAN總線轉RS-232

CAN總線數據發送到串口,原理相同,過程相反。CAN總線的數據接收也是在中斷中實現,這樣實時性好。CAN總線的接收緩存中有數據,則這8個字節的數據依次調用RS-232功能函數void RS232_PUTCHAR(),發送到串口。從而實現將數據從CAN總線傳輸到RS-232串口的功能。流程圖如圖4所示。

圖4 CAN到RS-232的流程圖Fig.4 Flow chart CAN to RS-232

圖5 測試界面圖Fig.5 Interface chart of the test system

4 實驗檢測

為了驗證設計的正確性,文中使用Kvaser CanKing和SecureCRT軟件來測試。Kvaser CanKing用來接收、發送CAN總線數據,SecureCRT用來接收、發送串口數據,二者都有顯示功能。實驗結果如圖5所示,其證實了設計的正確性。

5 結束語

數據通信在嵌入式系統的功能中占據重要地位,串口通信與CAN總線相互通信都具有各自的重要作用,而兩者的交互通信也越來越重要,本文的設計功能明確、結構簡單、具有很強的通用性和實用性,并通過了測試驗證。

[1]鄔寬明.CAN總線原理和應用系統設計[M].北京:北京航空航天大學出版社,1996.

[2]饒運濤.現場總線CAN原理與應用技術[M].北京:北京航空航天大學出版社,2003.

[3]陽憲慧.現場總線技術及其應用[M].北京:清華大學出版社,1999.

[4]童長飛.C8051F系列單片機開發與C語言編程[M].北京:北京航空航天大學出版社,2005.

[5]姜銘明.CAN總線系統的設計與實現 [J].電腦學習,2008(1):11-12.JIANG Ming-ming.Design and realization of CAN bus system[J].Computer Study,2008,1:11-12.

[6]王田苗.嵌入式系統設計與實例開發[M].北京:清華大學出版社,2002.

猜你喜歡
單片機設計
何為設計的守護之道?
現代裝飾(2020年7期)2020-07-27 01:27:42
《豐收的喜悅展示設計》
流行色(2020年1期)2020-04-28 11:16:38
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
瞞天過海——仿生設計萌到家
藝術啟蒙(2018年7期)2018-08-23 09:14:18
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
設計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
主站蜘蛛池模板: 国产美女人喷水在线观看| 成人午夜视频免费看欧美| 国产成人高清精品免费5388| 茄子视频毛片免费观看| 久久国产高潮流白浆免费观看| 久久黄色小视频| 精品乱码久久久久久久| 国内黄色精品| 素人激情视频福利| 国产精品综合久久久| 国产精品jizz在线观看软件| 国产成人一级| 波多野结衣视频一区二区| 欧美成人手机在线观看网址| 97视频精品全国免费观看| 99久久婷婷国产综合精| 在线免费无码视频| 91啦中文字幕| 亚洲人成人无码www| 在线a视频免费观看| 视频一本大道香蕉久在线播放| 久久精品视频亚洲| 亚洲欧美综合另类图片小说区| 国产一区二区三区在线观看视频| 5555国产在线观看| 成年免费在线观看| 久草青青在线视频| 精品久久久久无码| 亚洲综合九九| 欧美国产另类| 成年人国产网站| 国产毛片高清一级国语| 亚洲高清资源| 亚洲色精品国产一区二区三区| 幺女国产一级毛片| 亚洲精品第1页| 国产99在线| 露脸国产精品自产在线播| 欧美精品一二三区| 亚洲bt欧美bt精品| 天天操天天噜| 亚洲综合色区在线播放2019| 热99re99首页精品亚洲五月天| 亚洲精品中文字幕无乱码| 亚洲swag精品自拍一区| 欧美黑人欧美精品刺激| 欧美一级在线| 99久久无色码中文字幕| 一级福利视频| 超清人妻系列无码专区| 欧美日一级片| 91久久青青草原精品国产| 热久久国产| 亚洲美女AV免费一区| 日韩毛片在线视频| 日韩不卡高清视频| 欧美国产视频| 亚洲中文字幕无码mv| 无码精品国产VA在线观看DVD| 国产小视频a在线观看| 欧美劲爆第一页| 精品国产Av电影无码久久久| 国内毛片视频| 999福利激情视频| 国产JIZzJIzz视频全部免费| 天堂网亚洲系列亚洲系列| 中文字幕在线观| 热这里只有精品国产热门精品| 美女亚洲一区| 欧美高清三区| 久久精品人妻中文视频| 亚洲第一成人在线| 一本大道无码高清| 丝袜亚洲综合| 日韩午夜福利在线观看| 亚洲A∨无码精品午夜在线观看| 中文无码影院| 久久黄色影院| 91蝌蚪视频在线观看| 亚洲永久免费网站| 凹凸国产熟女精品视频| 在线观看热码亚洲av每日更新|