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

基于SJA1000IP核的CAN總線通信系統

2012-06-25 02:46:04陳祖海潘明
單片機與嵌入式系統應用 2012年7期
關鍵詞:程序功能系統

陳祖海,潘明

(桂林電子科技大學 計算機與控制學院,桂林 541004)

引 言

CAN(Controller Area Network)是控制器局域網的簡稱,是20世紀80年代初由德國BOSCH公司提出來的一種串行數據通信協議,主要用于解決當時由于汽車功能越來越多而導致汽車內部信號連接線增多的問題。隨后CAN總線迅速發展,并于1993年被列入ISO國際標準,形成了IOS11898標準。至今,CAN總線已經被公認為幾種最有前途的現場總線之一,其應用范圍也從當初的汽車行業擴展到了機械工業、交通工具、醫療設備、建筑、環境控制等諸多領域中。

伴隨著CAN總線的高速發展,用戶對其也提出了更高的要求。這無疑給CAN總線帶來發展機遇的同時也帶來了巨大的挑戰。在這種新形勢下,CAN總線原有的設計方案和技術就顯得有些力不從心。

可編程片上系統(System On a Programmable Chip,SOPC)是一種新型的系統軟硬件協同設計的開發技術,是電路系統發展的一個重要方向。它在集成度、設計靈活性以及可移植性等方面上的優越性無疑可以給CAN總線系統設計帶來新的動力,使其能夠快速地適應新形勢下的挑戰。

1 CAN總線控制器的工作原理

SJA1000芯片是Philips公司的一款獨立CAN總線控制器,主要用于移動目標和一般工業環境中的CAN總線系統上。相對于它的前一款PCA82C200,SJA1000主要的改進是在原有BasicCAN模式的基礎上增加了另一種工作模式(PeliCAN)——這種模式能夠支持擁有很多新特性的CAN 2.0B協議。出于兼容性的考慮,這兩種工作模式在SJA1000上都能夠實現,通過配置時鐘分頻器寄存器,就可以在兩種工作模式之間轉換。但是應特別注意的是芯片在復位后的默認模式為BasicCAN。

2 SJA1000的設計

2.1 SJA1000的功能

SJA1000是一款獨立的CAN總線控制器,在CAN總線網絡中的功能與作用和一般的CAN總線控制器相同,都是用來實現CAN總線協議的模塊。SJA1000在CAN總線系統中的位置如圖1所示。

在圖中共描繪了2個節點:一個標準參考模型節點和一個包含了SJA1000設備的節點。通過這樣的對比可以更加清楚地理解SJA1000的功能與作用。

圖1 SJA1000在CAN總線系統中的位置

2.2 SJA1000的結構

按照SJA1000用戶使用手冊中的敘述,其內部結構如圖2所示。

圖2 SJA1000的內部結構圖

從SJA1000的內部結構圖可以了解到SJA1000的功能主要是由以下幾個控制模塊完成:接口管理邏輯、發送緩沖器、接收緩沖器、驗收濾波器、位流處理器、位時序邏輯、錯誤管理邏輯。

2.3 SJA1000IP核設計

CAN總線控制器在系統中主要是用來完成LLC和MAC子層功能的。在綜合參考了幾種CAN總線控制器之后,我們選定了SJA1000作為實現目標。根據SJA1000的內部結構方框圖,如圖3所示,用Verilog HDL語言分別設計了寄存器控制模塊、位時序邏輯模塊、位數據流處理器模塊、CRC校驗模塊、驗收濾波器模塊、FIFO模塊、頂層控制模塊。共有7個功能模塊來實現SJA1000的全部功能,其程序結構如圖4所示。

圖3 SJA1000的內部結構方框圖

下面對這7個功能模塊的程序設計做一個大概的說明。

(1)寄存器控制程序

寄存器控制程序用于完成SJA1000中所有有關寄存器操作。設計寄存器組子模塊包括模式寄存器、命令寄存器、狀態寄存器、中斷寄存器、中斷使能寄存器、總線定時寄存器、仲裁丟失捕獲寄存器、錯誤代碼捕獲寄存器、錯誤報警限制寄存器、接收錯誤計數器、發送錯誤計數器、驗收代碼寄存器、驗收屏蔽寄存器、接收信息計數器、接收緩沖器起始地址寄存器、時鐘分頻寄存器和接收/發送緩沖器,方便微控制器對CAN_Module內部各個功能模塊的控制。

(2)位時序邏輯程序

位時序邏輯程序主要負責監視串行CAN總線,并處理與總線相關的位時序問題。在消息發送的開始處,當位時序邏輯檢測到總線上由隱性位到顯性位的跳變時,其內部邏輯同步到位流,稱之為硬同步。在接收消息的過程中,檢測到隱性位到顯性位的跳變時便會重同步到位流,稱之為軟同步。位時序邏輯根據總線定時寄存器和總線定時寄存器的值來決定每個位周期的采樣點的位置,以補償傳輸延遲和相位漂移所造成的誤差。

(3)位數據流處理器程序

位數據流處理器程序執行總線上的錯誤檢測、仲裁、填充和錯誤處理等功能。它主要由接收模塊、發送模塊、錯誤管理模塊、CRC校驗、驗收濾波、FIFO 6個子模塊組成。CRC校驗、驗收濾波、FIFO子模塊將單獨設計成子程序供位數據流處理器程序調用。

(4)CRC校驗程序

CRC校驗程序主要用來完成CAN總線網絡中循環冗余校驗碼功能。

(5)驗收濾波器程序

驗收濾波器程序的功能是由驗收代碼寄存器(ACR)和驗收屏蔽寄存器(AMR)共同完成的。驗收代碼寄存器將接收到幀中的標識碼內容與其自身的內容逐位的進行比較,以決定是否要接收這條報文,驗收完全通過后則保存到FIFO中。驗收屏蔽寄存器則決定在比較中起作用的驗收代碼寄存器的位(驗收屏蔽寄存器為0,則相應的驗收代碼寄存器的位相關;驗收屏蔽寄存器為1,則對應的位無關)。

圖4 CAN控制器IP核的程序結構圖

(6)先入先出FIFO存儲器程序

先入先出FIFO存儲器程序的功能是先對接收的報文進行存儲,并在CPU要求讀出數據時,將接收到的數據通過數據總線從控制器中讀出。FIFO模塊特點是先進入先輸出,后進入后輸出。本文中的FIFO存儲器是同步的,只有一個時鐘信號。

(7)頂層控制程序

頂層控制程序(can_top)是整個CAN總線控制器SJA1000IP核的最上層模塊,主要負責調用并控制以上6個程序模塊協同工作。

程序全部設計完后,通過使用QuartusII 9.0的編譯和綜合將整個程序封裝成模塊符號的形式,如圖5所示。這樣方便在后面的CAN總線通信系統設計中調用。

圖5 CAN總線控制器IP核的模塊符號

對CAN總線控制器IP核的仿真是在ModelSim軟件測試平臺中進行的,其仿真結果如圖6所示。

圖6 CAN總線控制器IP核的ModelSim仿真圖

從圖6中我們可以得出:白色豎線處發送成功狀態(tx_successful)置1,豎線前面一段時間內,CAN總線控制器IP核的發送狀態(transmit_status)為1,接收狀態(receive_status)為0,這說明控制器前面已成功地完成了一次發送操作;隨后硬同步(hard_sync)置1,發送狀態為0,接收狀態為1,控制器又開始一次接收操作,并在接收完后發送應答位(send_ack置1),且置info_empty為1。

3 SJA1000IP核的CAN總線通信系統設計

基于SJA1000IP核的CAN總線通信系統是將8051 IP核、數據RAM、程序ROM以及CAN總線控制器IP核一同設計到FPGA芯片內,從而構成SPOC系統的。基于IP核復用技術的CAN總線硬件連接圖如圖7所示。和傳統的CAN總線系統構架不同,本文的設計采用的是FPGA而不是單片機作為CAN總線通信系統的控制器。相對于單片機等微處理器而言,FPGA有著其獨特的優勢:I/O口資源豐富,可以很容易地實現更多的擴展功能;而且在電路設計中除了極少數必要的外圍器件外,其余的電路都可以集成設計到FPGA中。這樣做可以減少由于器件較多而產生的電磁干擾的可能性,而且還可以減少系統的體積和功耗、提高系統的可靠性。

在CAN 2.0B協議中,為了能夠達到設計透明度以及實現靈活性,根據ISO/OSI參考模型,CAN被細分為以下不同的層次:

① 數據鏈路層。其中包括邏輯鏈路控制子層(LLC)和介質訪問控制子層(MAC)。

② 物理層。物理層的作用是在不同節點之間根據所有的電氣屬性進行位的實際傳輸,它是由CAN總線驅動器和電氣線路構成的。

邏輯鏈路控制子層(LLC)和介質訪問控制子層(MAC)的功能,即報文分幀、仲裁、應答、錯誤檢測和標定、報文濾波、過載通知以及恢復管理都是由CAN總線控制器實現。因此,CAN總線控制器IP核(CAN_Module)主要完成LLC和MAC子層的功能。

4 CAN總線通信系統的測試與驗證

4.1 硬件電路的設計

CAN總線SOPC硬件連接圖如圖7所示,下面對圖7所示的兩個部分進行簡單介紹。

圖7 CAN總線SOPC硬件連接圖

4.2 系統的控制部分

控制部分選用的是KX_7C5E型實驗電路板,該實驗板中的FPGA目標芯片是Altera公司的Cyclone III型EP3C5E144C8。其中FPGA芯片包含有8051單片機IP核、CAN總線控制器IP核、內部程序ROM、內部數據RAM和鎖相環(PLL)等模塊。

4.3 CAN總線收發器部分

因為FPGA芯片的供電電壓和I/O口輸出電平為+3.3V,所以在設計中CAN總線收發器選用的供電電壓也必須是3.3V的。CTM1050TCAN總線收發器模塊是集成電源隔離、電氣隔離、CAN總線收發器和CAN總線保護于一體的CAN總線隔離收發器模塊。有了CAN總線隔離收發器,就可以很好地實現CAN總線上各節點電氣、電源之間的完全隔離和獨立,這樣可以提高各個節點的穩定性和安全性。該模塊的TXD、RXD引腳不需要外接其他元器件就可以很好地兼容+3.3V及+5V的CAN總線控制器。因此在圖7中我們將FPGA的I/O口與CTM1050T的引腳直接相連,故沒有設計任何外圍電路。

最后通過使用KX_7C5E型實驗電路板、CAN總線收發器、USBCAN-II、CAN總線實驗臺實驗,能夠進行基本的收發,驗證了系統的可行性。

結 語

本文已成功驗證了基于SJA1000IP核的CAN總線通信系統的可行性,該設計充分展現了片上可編程系統的靈活性和可移植性,減小了系統體積和功耗,完全可以代替原有傳統的CAN總線系統方案。

[1]潘松,黃繼業.EDA技術實用教程[M].3版.北京:科學出版社,2006:23-24.

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

[3]劉韜,樓興華.FPGA數字電路系統設計與開發實例導航[M].北京:人民郵電出版社,2005.

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

猜你喜歡
程序功能系統
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關于非首都功能疏解的幾點思考
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 91免费国产高清观看| 久久久久久尹人网香蕉| 国产69精品久久| 伊人久久婷婷五月综合97色| 亚洲三级a| 国产激情无码一区二区APP| 亚洲热线99精品视频| 国产激情无码一区二区APP| 全部无卡免费的毛片在线看| 美女无遮挡拍拍拍免费视频| 五月婷婷综合色| 超级碰免费视频91| 无码高潮喷水专区久久| 国产第一页免费浮力影院| 欧美国产日产一区二区| 国产精品太粉嫩高中在线观看| 国产剧情一区二区| 无码免费视频| 91精品专区| 亚洲AV无码一二区三区在线播放| 国产一区二区三区精品久久呦| 亚洲精品国产综合99| 无码精品国产VA在线观看DVD| AV在线麻免费观看网站| 国产99在线| 日本在线视频免费| 久久亚洲高清国产| 无码AV高清毛片中国一级毛片| 无码精油按摩潮喷在线播放| 久久亚洲综合伊人| 国产微拍一区二区三区四区| 亚洲AV无码久久精品色欲| 成人免费一级片| 亚洲av日韩综合一区尤物| 在线免费亚洲无码视频| 日本中文字幕久久网站| 亚洲欧美激情另类| 国产人人射| 国产二级毛片| 欧洲熟妇精品视频| 亚洲国产91人成在线| 国产精品成人免费视频99| 一级全免费视频播放| 欧美视频在线第一页| 亚洲不卡av中文在线| 人人看人人鲁狠狠高清| 中文字幕66页| 国产免费久久精品99re不卡| 2021天堂在线亚洲精品专区 | 精品视频91| 亚洲成a人片77777在线播放| 国产香蕉97碰碰视频VA碰碰看| 91久久青青草原精品国产| 国产又色又爽又黄| 亚洲av中文无码乱人伦在线r| 国产美女主播一级成人毛片| 免费在线色| 青草午夜精品视频在线观看| 欧美国产日韩一区二区三区精品影视 | 亚洲日韩AV无码精品| 92午夜福利影院一区二区三区| 精品国产成人高清在线| 中文成人在线视频| 久久精品人人做人人爽97| 欧美精品在线看| 久久国产精品夜色| 久久久久人妻一区精品| 波多野结衣久久高清免费| 亚洲中文在线视频| 亚洲av无码久久无遮挡| 国产精品久久久久久久久| 午夜视频免费一区二区在线看| 久久精品亚洲专区| 国产精品免费p区| 欧美成人区| 亚洲欧美一区在线| 国产素人在线| 日本a∨在线观看| 亚洲高清中文字幕| 少妇露出福利视频| 欧美黄色a| 超清无码一区二区三区|