• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于SJA1000IP核的CAN總線通信系統(tǒng)

      2012-06-25 02:46:04陳祖海潘明
      關(guān)鍵詞:子層收發(fā)器寄存器

      陳祖海,潘明

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

      引 言

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

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

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

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

      SJA1000芯片是Philips公司的一款獨立CAN總線控制器,主要用于移動目標(biāo)和一般工業(yè)環(huán)境中的CAN總線系統(tǒng)上。相對于它的前一款PCA82C200,SJA1000主要的改進(jìn)是在原有BasicCAN模式的基礎(chǔ)上增加了另一種工作模式(PeliCAN)——這種模式能夠支持擁有很多新特性的CAN 2.0B協(xié)議。出于兼容性的考慮,這兩種工作模式在SJA1000上都能夠?qū)崿F(xiàn),通過配置時鐘分頻器寄存器,就可以在兩種工作模式之間轉(zhuǎn)換。但是應(yīng)特別注意的是芯片在復(fù)位后的默認(rèn)模式為BasicCAN。

      2 SJA1000的設(shè)計

      2.1 SJA1000的功能

      SJA1000是一款獨立的CAN總線控制器,在CAN總線網(wǎng)絡(luò)中的功能與作用和一般的CAN總線控制器相同,都是用來實現(xiàn)CAN總線協(xié)議的模塊。SJA1000在CAN總線系統(tǒng)中的位置如圖1所示。

      在圖中共描繪了2個節(jié)點:一個標(biāo)準(zhǔn)參考模型節(jié)點和一個包含了SJA1000設(shè)備的節(jié)點。通過這樣的對比可以更加清楚地理解SJA1000的功能與作用。

      圖1 SJA1000在CAN總線系統(tǒng)中的位置

      2.2 SJA1000的結(jié)構(gòu)

      按照SJA1000用戶使用手冊中的敘述,其內(nèi)部結(jié)構(gòu)如圖2所示。

      圖2 SJA1000的內(nèi)部結(jié)構(gòu)圖

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

      2.3 SJA1000IP核設(shè)計

      CAN總線控制器在系統(tǒng)中主要是用來完成LLC和MAC子層功能的。在綜合參考了幾種CAN總線控制器之后,我們選定了SJA1000作為實現(xiàn)目標(biāo)。根據(jù)SJA1000的內(nèi)部結(jié)構(gòu)方框圖,如圖3所示,用Verilog HDL語言分別設(shè)計了寄存器控制模塊、位時序邏輯模塊、位數(shù)據(jù)流處理器模塊、CRC校驗?zāi)K、驗收濾波器模塊、FIFO模塊、頂層控制模塊。共有7個功能模塊來實現(xiàn)SJA1000的全部功能,其程序結(jié)構(gòu)如圖4所示。

      圖3 SJA1000的內(nèi)部結(jié)構(gòu)方框圖

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

      (1)寄存器控制程序

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

      (2)位時序邏輯程序

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

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

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

      (4)CRC校驗程序

      CRC校驗程序主要用來完成CAN總線網(wǎng)絡(luò)中循環(huán)冗余校驗碼功能。

      (5)驗收濾波器程序

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

      圖4 CAN控制器IP核的程序結(jié)構(gòu)圖

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

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

      (7)頂層控制程序

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

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

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

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

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

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

      3 SJA1000IP核的CAN總線通信系統(tǒng)設(shè)計

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

      在CAN 2.0B協(xié)議中,為了能夠達(dá)到設(shè)計透明度以及實現(xiàn)靈活性,根據(jù)ISO/OSI參考模型,CAN被細(xì)分為以下不同的層次:

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

      ② 物理層。物理層的作用是在不同節(jié)點之間根據(jù)所有的電氣屬性進(jìn)行位的實際傳輸,它是由CAN總線驅(qū)動器和電氣線路構(gòu)成的。

      邏輯鏈路控制子層(LLC)和介質(zhì)訪問控制子層(MAC)的功能,即報文分幀、仲裁、應(yīng)答、錯誤檢測和標(biāo)定、報文濾波、過載通知以及恢復(fù)管理都是由CAN總線控制器實現(xiàn)。因此,CAN總線控制器IP核(CAN_M(jìn)odule)主要完成LLC和MAC子層的功能。

      4 CAN總線通信系統(tǒng)的測試與驗證

      4.1 硬件電路的設(shè)計

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

      圖7 CAN總線SOPC硬件連接圖

      4.2 系統(tǒng)的控制部分

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

      4.3 CAN總線收發(fā)器部分

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

      最后通過使用KX_7C5E型實驗電路板、CAN總線收發(fā)器、USBCAN-II、CAN總線實驗臺實驗,能夠進(jìn)行基本的收發(fā),驗證了系統(tǒng)的可行性。

      結(jié) 語

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

      [1]潘松,黃繼業(yè).EDA技術(shù)實用教程[M].3版.北京:科學(xué)出版社,2006:23-24.

      [2]饒運濤,鄒繼軍.現(xiàn)場總線CAN原理與應(yīng)用技術(shù)[M].北京:北京航空航天大學(xué)出版社,2007.

      [3]劉韜,樓興華.FPGA數(shù)字電路系統(tǒng)設(shè)計與開發(fā)實例導(dǎo)航[M].北京:人民郵電出版社,2005.

      [4]鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社,1996.

      猜你喜歡
      子層收發(fā)器寄存器
      清管球收發(fā)器設(shè)計細(xì)節(jié)分析及應(yīng)用
      Lite寄存器模型的設(shè)計與實現(xiàn)
      復(fù)合材料厚層合板力學(xué)性能等效方法研究
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      Virtex5 FPGA GTP_DUAL硬核兩個收發(fā)器獨立使用的實現(xiàn)
      分離載荷近距協(xié)議的數(shù)據(jù)鏈路層仿真研究
      以太網(wǎng)協(xié)議模型的演進(jìn)分析
      富士通半導(dǎo)體推出收發(fā)器家族全新LTE優(yōu)化多頻單芯片MB86L13A
      高速數(shù)模轉(zhuǎn)換器AD9779/AD9788的應(yīng)用
      LTE系統(tǒng)切換過程的實現(xiàn)*
      茂名市| 合山市| 敦化市| 施秉县| 修文县| 江源县| 新源县| 珲春市| 延川县| 报价| 许昌市| 驻马店市| 庆安县| 游戏| 格尔木市| 龙海市| 探索| 高唐县| 盈江县| 景谷| 富锦市| 理塘县| 宁都县| 怀远县| 黄浦区| 辽阳市| 南华县| 昌黎县| 平湖市| 八宿县| 平武县| 宁波市| 富川| 金昌市| 汶川县| 乐至县| 兰州市| 乌恰县| 定州市| 体育| 中方县|