• 
    

    
    

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

      CAN控制器IP核優(yōu)化設計的仿真和通信驗證

      2018-10-15 06:08:22,,
      關鍵詞:寄存器總線邏輯

      ,,

      (火箭軍工程大學 基礎部,西安 710025)

      引 言

      CAN現(xiàn)場總線是由德國BOSCH公司于1986年設計的一種符合ISO國際標準化的串行通信網(wǎng)絡,在通信傳輸方面擁有高可靠性、靈活性和實時性等特點,是目前應用最廣泛的現(xiàn)場總線之一[1]。

      一般的CAN總線通信系統(tǒng)實現(xiàn)都是由外置獨立總線控制器和總線接收器完成的,通過總線控制器對傳輸數(shù)據(jù)進行控制,通過總線接收器進行數(shù)據(jù)接收,每個器件獨立完成各自的工作,能夠極大降低板間干擾,特別是硬件電路中加耦合電路時,能夠在很大程度上增強硬件電路的整體穩(wěn)定性。但是傳統(tǒng)硬件電路嵌入繁雜、移植性差,因此本文使用 Altera(現(xiàn)被英特爾收購)SOPC Builder軟件中提供的嵌入式精簡指令集微處理器 NIOS-II和免費IP核進行SOPC系統(tǒng)設計[2],在 FPGA上完成總線控制器設計,使生成的CAN總線通信電路有效地減少了外圍芯片的數(shù)量,降低了產(chǎn)品的體積、功耗和復雜度,提高了產(chǎn)品的集成度,從而使產(chǎn)品有很好的移植性和可擴展性[3]。

      1 基于傳統(tǒng)電路的總線通信設計

      傳統(tǒng)的電路思路是使外置SJA1000芯片對總線協(xié)議進行處理, TJA1050收發(fā)器為總線通信系統(tǒng)提供差分收發(fā)能力進行收發(fā)總線數(shù)據(jù),還需要加一個耦合電路來降低環(huán)境對硬件電路的干擾。隨著硬件可編程邏輯電路的發(fā)展,可以使大型的電路集成化。本文沒有采用傳統(tǒng)的控制器設計方法,而是采用FPGA技術來進行開發(fā)設計。采用FPGA芯片作為電路的核心控制單元,PCA85C250作為外圍總線接收芯片,選用外部晶振提供系統(tǒng)時鐘,晶振頻率為16 MHz。其中把SJA1000控制器芯片的功能固化為 IP核嵌入到 FPGA芯片中,然后利用 Altera自帶的 Avalon總線對 IP塊進行掛載,參數(shù)化接口使 NIOS-II微處理器能夠?qū)Ω鱾€模塊進行控制,最后使用 Verilog HDL硬件語言編寫邏輯接口和內(nèi)部寄存器,利用FPGA完成總線通信協(xié)議的設計并實現(xiàn)全部功能。基于FPGA IP核技術的CAN通信設計框圖如圖1所示。

      圖1 基于FPGA IP核技術的CAN通信設計框圖

      其中使用Altera公司 CycloneIV系列EP4CE10F17C8N型號的芯片作為硬件電路的核心控制單元,這種型號的芯片具有低功耗特點,采用FPGA封裝,表面貼裝,體積小,面積為17 mm×17 mm,具有6 272個邏輯門、392萬邏輯單元、360個18×18乘法器、270 KB RAM位單元、179個用戶 I/O接口、9 KB的嵌入式 SRAM存儲器,使用 SRAM單元存儲,斷電可擦除,可以通過 EPCS系列串行閃存器進行斷電信息儲存,支持在1.0 V和1.2 V電壓環(huán)境下工作。選用此芯片在于其自帶EPCS系列串行閃存器進行斷電信息儲存,可以起到斷電保存的功能,更加方便進行硬件復位后的初始化。

      CAN接口芯片采用PHILIPS公司生產(chǎn)的 PCA85C250,該芯片電源電壓為4.5~5.5 V,最高數(shù)據(jù)傳輸速率為1 Mbps,作為 FPGA與物理總線之間的接口,接口芯片有以下特點:給物理通信總線提供差分發(fā)送能力,給核心控制器提供差分接收能力;抗干擾能力強,能夠很大程度上防止物理總線被干擾;未上電的節(jié)點對總線無影響;能夠最大程度地維護整個電路的穩(wěn)定。

      2 CAN控制器的設計與仿真

      CAN總線控制器的IP核是依據(jù)SJA1000總線控制器的工作原理和功能進行設計的,能實現(xiàn)SJA100總線控制器的全部功能??刂破鱅P核使用“自頂向下”的方式進行功能模塊的規(guī)劃,用Verilog HDL語言根據(jù)設計好的頂層控制模塊劃分各個功能子模塊,通過核心處理器調(diào)用各個子模塊的程序,實現(xiàn)總線控制器的核心功能。圖2所示為CAN總線控制器的硬件語言架構(gòu)。

      圖2 CAN控制器IP核架構(gòu)

      2.1 頂層的邏輯接口設計

      頂層邏輯模塊提供了外部接口,可以進行數(shù)據(jù)讀寫,并將內(nèi)部有關聯(lián)的模塊用“wire”型變量連接起來,完成總線控制器各個子模塊功能的調(diào)用。

      接口定義如下:

      Modulecan_top

      ( clk, //系統(tǒng)輸入時鐘

      reset, //系統(tǒng)復位信號輸入

      address, //地址位輸入

      chipselect, //片選信號輸入

      write, //寫信號輸入

      read, //讀信號輸入

      writedata, //寫數(shù)據(jù)信號輸入

      readdata, //讀數(shù)據(jù)信號輸入

      waitrequest_n, //等待請求信號輸入

      clk_i, //內(nèi)部時鐘輸入

      rx_i, //數(shù)據(jù)輸入

      tx_o, //數(shù)據(jù)輸出

      bus_off_on, //使能總線關閉

      irq_on, //使能外部中斷

      clkout_o, //系統(tǒng)時鐘輸出

      );

      根據(jù)頂層的邏輯接口設計,可以完成電路硬件的引腳管理和內(nèi)部寄存器接口管理,使硬件正常工作。

      2.2 寄存器

      CAN控制器軟核的內(nèi)部寄存器是根據(jù)CAN2.0B通信協(xié)議來設計的,下面簡單介紹各個寄存器。

      模式寄存器:包含只聽模式、復位模式、自測模式和驗收濾波輸出模式,能夠改變總線控制器的行為,而核心處理器就是通過在復位模式寄存器上配置控制寄存器的值來完成CAN通信的初始化設計。

      命令寄存器:通過置位命令寄存器來啟動發(fā)送,命令寄存器是只寫寄存器,讀出值為邏輯0。

      狀態(tài)寄存器:體現(xiàn)控制器狀態(tài),為只讀寄存器。

      中斷寄存器:可以識別中斷源,被置位時可以反映到CPU中。

      中斷使能寄存器:使中斷源對CPU生效,讀/寫寄存器。

      總線定時寄存器:總線定時寄存器0定義了波特率預設值和同步跳轉(zhuǎn)寬度值,總線定時寄存器1定義了位周期長度、采樣點的位置和采樣數(shù)目。

      仲裁丟失捕獲寄存器:包含仲裁丟失的位置信息。

      錯誤代碼捕獲寄存器:包括了總線錯誤類型和位置。

      錯誤報警限制寄存器:定義了錯誤報警限制。

      接收錯誤計數(shù)器:顯示當前錯誤接收數(shù)。

      發(fā)送錯誤計數(shù)器:顯示當前錯誤發(fā)送數(shù)。

      驗收濾波器:驗收信息并放入FIFO中。

      接收信息計數(shù)器:顯示當前信息接收數(shù)。

      時鐘分頻寄存器:控制clkout頻率和屏蔽其引腳。

      發(fā)送緩沖寄存器:分為描述符區(qū)和數(shù)據(jù)區(qū),其中描述符區(qū)的第一個字節(jié)是幀信息字節(jié)。

      接收緩沖寄存器:類似于發(fā)送緩沖器。

      雖然寄存器設計模塊中有許多功能不同的寄存器,但是在一個時鐘里只可以寫一個寄存器,在程序設計中,每一個寄存器定義了一個寫使能信號,只有當其內(nèi)部連線有效的時候,才能進行寫操作,寫入寄存器中。而讀寄存器只需要讀信號有效并且有相應的有效地址就可以進行讀操作,但是讀寫寄存器都需要對當前工作模式(基本模式和擴展模式)進行判斷后才能進行讀寫。

      本設計就是通過FPGA芯片對寄存器的訪問獲得CAN控制器當前的工作狀態(tài)實現(xiàn)對CAN控制器的控制。

      2.3 位時序邏輯

      位時序邏輯(BTL)可以監(jiān)測位時序,并能夠依據(jù)消息發(fā)送和接收時總線電平值的顯隱變化來完成軟/硬同步。在信息開始發(fā)送時,如果電平值的變換為隱性到顯性,則位時序邏輯將內(nèi)部邏輯同步到位流,也就是硬同步;而在信息接收的過程中,電平值被檢測到為隱性到顯性時,位時序邏輯將進行重同步,也就是軟同步。這樣的工作原理可以實現(xiàn)對 CAN總線協(xié)議的同步控制,完成CAN總線的時序設定,而且能夠依據(jù)兩個總線定時寄存器的值來設置每個位周期采樣點的位置,以補償傳輸延遲導致的時間誤差和相位漂移造成的誤差,也可以設置采樣模式。圖3為位時序(BTL)的仿真。

      圖3 位時序邏輯仿真

      2.4 位流處理器

      數(shù)據(jù)經(jīng)過位時序邏輯的處理后,提供給位流處理器的是以采樣點或發(fā)送點為同步信號的采樣值或發(fā)送值的串行信號。位流處理器把這種信號進行串/并轉(zhuǎn)換后儲存到與之對應的寄存器里。在這種工作過程中,CAN控制器軟核可以通過位流處理器完成總線上的仲裁、位填充、驗收濾波和錯誤處理等功能。

      (1)CRC校驗

      循環(huán)冗余校驗(CRC)用做保證傳輸數(shù)據(jù)信息的正確性,完成信息的校驗。相比于奇偶校驗碼,CRC的編碼簡單且容錯率低,限于篇幅就不對兩者的工作原理進行比較。CRC校驗的仿真如圖4所示。

      圖4 CRC校驗仿真波形

      (2)驗收濾波器

      驗收濾波器(ACF)能夠自動檢測ID和數(shù)據(jù)字節(jié)進行濾波,防止緩沖無效的數(shù)據(jù)信息,能夠主動降低主控制器的負載。ACF是由驗收代碼寄存器(ACR)和驗收屏蔽寄存器(AMR)根據(jù)一定的算法來控制接收到的數(shù)據(jù)與驗收代碼寄存器進行逐位比較,并通過驗收屏蔽寄器定義與比較相關的位的位置來確認是否接收該信息(0為相關,1為不相關)。圖5是ACF的波形仿真。

      圖5 驗收濾波器的仿真波形

      (3)FIFO緩沖器

      如果接收到的數(shù)據(jù)沒有出錯,并且通過了濾波,接收節(jié)點就會將接收到的數(shù)據(jù)報文放入到接收FIFO里,F(xiàn)IFO存儲器的特點是先進入存儲器的數(shù)據(jù)先輸出,可以用來緩存通信接口的數(shù)據(jù)。每成功接收一條報文, CAN控制器都要產(chǎn)生一個中斷,同時FIFO內(nèi)部地址指針依據(jù)接收報文所占空間自動下移,接收在FIFO存儲空間為0時產(chǎn)生的數(shù)據(jù)溢出中斷。在微處理器讀出數(shù)據(jù)時,用戶可以指定開始讀出數(shù)據(jù)的地址,選擇要讀出的報文。FIFO模塊的功能是對接收的報文進行存儲,在CPU要求讀出數(shù)據(jù)時,把接收到的數(shù)據(jù)通過數(shù)據(jù)總線從控制器讀出。仿真如圖6所示。

      圖6 FIFO仿真波形

      3 CAN控制器IP核的生成

      當CAN總線控制器經(jīng)過仿真驗證證明能夠正常工作后,就可以著手定制CAN控制器的IP核。在定制IP核時,需要Avalon總線參與工作,Avalon作為Altera公司開發(fā)的一種簡單的片內(nèi)總線,能夠?qū)崿F(xiàn)NIOS-II與外設的連接。當CAN控制器實現(xiàn)仿真后,就可以把整個CAN控制器打包形成一個IP核封裝塊,掛載到Avalon總線上進行工作。

      本設計的IP核制作流程分為以下的幾個步驟:

      ① 設計IP核需要實現(xiàn)的具體功能。本文開頭已經(jīng)對于IP核的硬件實現(xiàn)功能進行了介紹,就是通過內(nèi)部設計的各個寄存器來實現(xiàn)CAN總線控制器的設計。

      ② 對Avalon總線接口進行定義。在對本設計Avalon總線接口進行定義的時候,首先要了解Avalon總線的接口規(guī)范,了解Avalon總線定義的接口性質(zhì)和特點尤為重要。只有這樣,在使用Avalon總線連接IP塊時,才能夠正確地對接口信號類型、寬度和輸入輸出方向進行設定,防止出錯。

      Avalon定義接口如下:

      a.Avalon Clock Interface:發(fā)送和接收時鐘;

      b.Avalon Reset Interface:提供聯(lián)合復位的接口;

      c.Avalon-MM:基于地址的主從連接關系的接口;

      d.Avalon Interrupt Interface:允許組件到信號事件再到其他組件的接口;

      e.Avalon-ST:支持單向數(shù)據(jù)流,包括數(shù)據(jù)包、DSP數(shù)據(jù)等;

      f.Avalon-TC:支持連接到片外外圍設備的接口;

      g.Avalon Conduit Interface:適應不能適合任何其余Avalon類型的個別信號或信號組的接口類型。

      在系統(tǒng)構(gòu)建時,CAN控制器IP核是作為一個從單元進行設計的,因此需要對控制器的幾個接口進行分類,比如時鐘信號、地址信號、復位信號、寫使能信號、中斷信號等。在完成IP核的封裝時都需要用到這些接口的定義,來完成IP核的定制。下面給出了控制器設計的接口類型、位寬和方向。

      ③ 運用Verilog HDL(不限制類型)進行硬件邏輯程序的編寫。主要是對接口文件、寄存器文件和硬件邏輯文件的編寫,這項工作之前也已經(jīng)完成。其中接口文件作為頂層模塊,定義總線接口信號;寄存器文件完成IP核與外部信號的通信,用戶可以通過總線訪問內(nèi)部所有寄存器;硬件邏輯文件能夠?qū)崿F(xiàn)IP核的硬件功能。

      ④ 利用編輯器完成IP核的硬件邏輯封裝,完成IP核的定制。

      ⑤ 編寫寄存器的C頭文件和IP核的功能驅(qū)動文件。

      ⑥ 用軟件自動抓取IP核的HAL。

      編寫完寄存器頭文件和IP核的驅(qū)動文件,就可以創(chuàng)建tcl文件,一般都有特定的代碼格式,改動即可。完成所有文件的編寫后,軟件就可以自動抓取自定義的IP核,利用生成的IP核連接成CAN收發(fā)組件。圖7為CAN通信系統(tǒng)的Qsys構(gòu)建,把創(chuàng)建的Qsys系統(tǒng)燒錄到FPGA后,就可以實現(xiàn)CAN的收發(fā)功能。

      圖7 Qsys系統(tǒng)構(gòu)建

      4 通信測試

      本次通信測試沒有用傳統(tǒng)的板間測試,因為板間測試工作周期長、代價高,因此本文嵌入了兩個CAN總線IP核掛載在NIOS上,在一個電路上設計了兩個CAN總線的發(fā)送接收端口,進行自發(fā)自收,大大節(jié)約了設計周期和制作代價。這種方法雖然有優(yōu)勢,但是代碼編寫十分麻煩,因此在一些大型的系統(tǒng)中依然不太實用。

      結(jié) 語

      猜你喜歡
      寄存器總線邏輯
      刑事印證證明準確達成的邏輯反思
      法律方法(2022年2期)2022-10-20 06:44:24
      邏輯
      創(chuàng)新的邏輯
      Lite寄存器模型的設計與實現(xiàn)
      計算機應用(2020年5期)2020-06-07 07:06:44
      基于PCI Express總線的xHC與FPGA的直接通信
      測控技術(2018年6期)2018-11-25 09:50:12
      機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設計
      測控技術(2018年8期)2018-11-25 07:42:08
      女人買買買的神邏輯
      37°女人(2017年11期)2017-11-14 20:27:40
      分簇結(jié)構(gòu)向量寄存器分配策略研究*
      多通道ARINC429總線檢查儀
      基于EtherCAT總線的ROV控制系統(tǒng)設計
      河南科技(2014年16期)2014-02-27 14:13:22
      申扎县| 理塘县| 鹿泉市| 资溪县| 宁陵县| 琼海市| 佛教| 正安县| 察隅县| 深州市| 肃宁县| 磐石市| 榆社县| 阿巴嘎旗| 封丘县| 什邡市| 榆社县| 长乐市| 石城县| 江城| 铜梁县| 镇安县| 四平市| 公主岭市| 洞口县| 浦城县| 霍州市| 贵南县| 蒙山县| 绩溪县| 金门县| 马尔康县| 深水埗区| 金坛市| 庄河市| 易门县| 滁州市| 宝应县| 宁都县| 和田县| 萝北县|