亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        CAN控制器IP核優(yōu)化設(shè)計(jì)的仿真和通信驗(yàn)證

        2018-10-15 06:08:22,,
        關(guān)鍵詞:寄存器總線邏輯

        ,,

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

        引 言

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

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

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

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

        圖1 基于FPGA IP核技術(shù)的CAN通信設(shè)計(jì)框圖

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

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

        2 CAN控制器的設(shè)計(jì)與仿真

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

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

        2.1 頂層的邏輯接口設(shè)計(jì)

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

        接口定義如下:

        Modulecan_top

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

        reset, //系統(tǒng)復(fù)位信號(hào)輸入

        address, //地址位輸入

        chipselect, //片選信號(hào)輸入

        write, //寫信號(hào)輸入

        read, //讀信號(hào)輸入

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

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

        waitrequest_n, //等待請(qǐng)求信號(hào)輸入

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

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

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

        bus_off_on, //使能總線關(guān)閉

        irq_on, //使能外部中斷

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

        );

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

        2.2 寄存器

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

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

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

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

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

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

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

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

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

        錯(cuò)誤報(bào)警限制寄存器:定義了錯(cuò)誤報(bào)警限制。

        接收錯(cuò)誤計(jì)數(shù)器:顯示當(dāng)前錯(cuò)誤接收數(shù)。

        發(fā)送錯(cuò)誤計(jì)數(shù)器:顯示當(dāng)前錯(cuò)誤發(fā)送數(shù)。

        驗(yàn)收濾波器:驗(yàn)收信息并放入FIFO中。

        接收信息計(jì)數(shù)器:顯示當(dāng)前信息接收數(shù)。

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

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

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

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

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

        2.3 位時(shí)序邏輯

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

        圖3 位時(shí)序邏輯仿真

        2.4 位流處理器

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

        (1)CRC校驗(yàn)

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

        圖4 CRC校驗(yàn)仿真波形

        (2)驗(yàn)收濾波器

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

        圖5 驗(yàn)收濾波器的仿真波形

        (3)FIFO緩沖器

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

        圖6 FIFO仿真波形

        3 CAN控制器IP核的生成

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

        本設(shè)計(jì)的IP核制作流程分為以下的幾個(gè)步驟:

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

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

        Avalon定義接口如下:

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

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

        c.Avalon-MM:基于地址的主從連接關(guān)系的接口;

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

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

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

        g.Avalon Conduit Interface:適應(yīng)不能適合任何其余Avalon類型的個(gè)別信號(hào)或信號(hào)組的接口類型。

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

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

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

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

        ⑥ 用軟件自動(dòng)抓取IP核的HAL。

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

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

        4 通信測(cè)試

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

        結(jié) 語

        猜你喜歡
        寄存器總線邏輯
        刑事印證證明準(zhǔn)確達(dá)成的邏輯反思
        法律方法(2022年2期)2022-10-20 06:44:24
        邏輯
        創(chuàng)新的邏輯
        Lite寄存器模型的設(shè)計(jì)與實(shí)現(xiàn)
        基于PCI Express總線的xHC與FPGA的直接通信
        機(jī)載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計(jì)
        女人買買買的神邏輯
        37°女人(2017年11期)2017-11-14 20:27:40
        分簇結(jié)構(gòu)向量寄存器分配策略研究*
        多通道ARINC429總線檢查儀
        基于EtherCAT總線的ROV控制系統(tǒng)設(shè)計(jì)
        河南科技(2014年16期)2014-02-27 14:13:22
        亚洲人妻中文字幕在线视频| 一色桃子中文字幕人妻熟女作品| 亚洲av免费看一区二区三区| 一区二区三区精品婷婷| 91久久国产香蕉熟女线看| 强开小婷嫩苞又嫩又紧视频韩国| 国产精品成人aaaaa网站| 中文字幕欧美人妻精品一区| 婷婷综合缴情亚洲| 永久无码在线观看| 久久久久久亚洲AV成人无码国产| 久久精品国产免费观看99| 亚洲伊人免费综合网站| 91麻豆精品一区二区三区| 国产精品久久熟女吞精| 久久精品国产精品亚洲艾| 精品亚洲国产成人av色哟哟| 国产人成视频在线视频| 色欲色欲天天天www亚洲伊| 老熟妇仑乱视频一区二区| 国产香蕉尹人综合在线观| 国产一区二区三区爆白浆| 99久久精品国产一区色| 国产午夜视频一区二区三区| 精品国产粉嫩内射白浆内射双马尾 | 无码人妻丰满熟妇区bbbbxxxx| 日本公妇在线观看中文版| 欧美综合自拍亚洲综合图片区| 国产一线视频在线观看高清| 亚洲黄色大片在线观看| 精品久久亚洲中文字幕| 一本久久伊人热热精品中文字幕| 国产一区二区三区美女| 97SE亚洲国产综合自在线不卡| 中文字幕这里都是精品| 国产日产久久高清ww| 中文字幕亚洲无线码在线一区| 男人j进女人j啪啪无遮挡| 少妇对白露脸打电话系列| 亚州五十路伊人网| 午夜少妇高潮在线观看视频|