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

8051 IP核與 CAN IP核的接口技術(shù)

2014-09-12 03:40:50薛鵬舉倪霞林
機(jī)械制造與自動化 2014年4期
關(guān)鍵詞:單片機(jī)設(shè)計(jì)

薛鵬舉,倪霞林

(福州大學(xué)機(jī)械工程及自動化學(xué)院,福建福州350108)

0 前言

基于現(xiàn)場可編程門陣列(field programmable gate array,F(xiàn)PGA)的電子系統(tǒng)設(shè)計(jì)技術(shù)是21世紀(jì)電子應(yīng)用工程師必備的基本技能之一,而基于FPGA的可編程片上系統(tǒng)(system on a programmable chip,SOPC)設(shè)計(jì)技術(shù)是當(dāng)前電子系統(tǒng)設(shè)計(jì)領(lǐng)域最前沿的技術(shù)之一。在SOPC技術(shù)的幫助下,使電子系統(tǒng)在IP核層次上的設(shè)計(jì)成為可能[1]。所謂IP核就是使用硬件描述語言(hardware description language,HDL)實(shí)現(xiàn)的一個可重用的邏輯單元,已經(jīng)過RTL級設(shè)計(jì)優(yōu)化和功能驗(yàn)證,但不包含任何具體的物理信息。因此,用戶可以綜合得到正確的門電路級設(shè)計(jì)網(wǎng)表,并可以進(jìn)行后續(xù)的結(jié)構(gòu)設(shè)計(jì),具有很大的靈活性。它允許用戶通過編寫HDL代碼輕松地設(shè)計(jì)或改變系統(tǒng)的功能,而無需考慮設(shè)備的規(guī)格以及印刷電路板(printed circuit board,PCB)布局。本文展示了利用IP核設(shè)計(jì)CAN節(jié)點(diǎn)設(shè)的關(guān)鍵要素,提出一個系統(tǒng)的SPOC技術(shù)設(shè)計(jì)的基本方法。

CAN節(jié)點(diǎn)是指能夠掛接在CAN總線上的單元,并能通過CAN總線實(shí)現(xiàn)各個節(jié)點(diǎn)間的通信,以實(shí)現(xiàn)復(fù)雜的控制過程[2],當(dāng)前主要用于汽車的眾多傳感器間接收和發(fā)送節(jié)點(diǎn)信號,是CAN-BUS的最重要的組件之一。一個CAN節(jié)點(diǎn)包括三大模塊:CAN協(xié)議、微處理器和用戶模塊。CAN協(xié)議模塊負(fù)責(zé)提供消息,而微處理器解釋它們并生成相應(yīng)指令,最后用戶模塊執(zhí)行這些指令。

在當(dāng)今的行業(yè),主流的CAN節(jié)點(diǎn)設(shè)計(jì)仍然在使用多芯片模塊。然而,這種設(shè)計(jì)方式確實(shí)降低了系統(tǒng)的穩(wěn)定性和可靠性,并且阻礙了設(shè)計(jì)的靈活性[3]。本文證明了采用SOPC技術(shù),將8051IP核、CAN IP核以及用戶自定義模塊復(fù)合在一個單一的FPGA芯片設(shè)計(jì)的可行性。

1 實(shí)例化8051 IP核

51系列單片機(jī)是基于哈佛體系結(jié)構(gòu)的8位微控制器[5]。8051IP核是使用硬件描述語言編寫的,在QUARTUS II環(huán)境下可以被綜合成具體的硬件電路,并下載到FPGA中運(yùn)行。8051IP核源代碼是完全免費(fèi)的,可以從網(wǎng)站上下載。當(dāng)拿到一個IP核時,如何使用這才是最重要的問題。需明確的是8051IP核在使用ModelSim等仿真工具調(diào)試的時候,內(nèi)部使用的是虛擬內(nèi)存,這些內(nèi)存在真實(shí)的硬件中是不能使用的。因此,應(yīng)該用目標(biāo)FPGA中真實(shí)存在的內(nèi)存替換IP核中所有用于仿真的內(nèi)存,否則系統(tǒng)就會報錯。對于51單片機(jī),只讀存儲器(ROM)和內(nèi)部的隨機(jī)存儲器(RAM)是必需的,而外部RAM可以沒有。由于ROM和內(nèi)部RAM是用來存儲程序和數(shù)據(jù)的功能,存儲器的大小和數(shù)據(jù)總線的寬度必須要正確定義。推薦ROM的容量為8KB×8bit,片上RAM的容量為128Byte×8bit。利用C51編譯器,將51單片機(jī)源程序編譯生成后綴為hex的可執(zhí)行代碼,然后裝載到實(shí)例化好的ROM中即可。需要注意的是:傳統(tǒng)的51單片機(jī)外部使用的是復(fù)用總線,即地址總線和數(shù)據(jù)總線占用的是相同的引腳,而通過8051IP核實(shí)例化出來的51單片機(jī)采用的是非復(fù)用總線。目前,大多數(shù)CPU和外圍設(shè)備都是采用非復(fù)用總線結(jié)構(gòu),所以8051IP核可以很容易與它們互連。另一點(diǎn)需要注意的是8051IP核的IO端口是單向的,這與傳統(tǒng)51單片機(jī)的雙向IO口有明顯區(qū)別。如果想使用具有雙向功能的IO口,必須自己實(shí)例化一個外部轉(zhuǎn)換電路。最后需要強(qiáng)調(diào)的是,對于任何一款芯片,時鐘是必不可少的東西,就像是CPU的“心臟”。為了獲得合適的時鐘信號,通常還需要實(shí)例化一個鎖相環(huán)(PLL)電路。一個完整的8051系統(tǒng)的結(jié)構(gòu)(圖1)用原理圖的方式來連接各個模塊。

圖1 8051系統(tǒng)結(jié)構(gòu)

2 實(shí)例化CAN IP核

現(xiàn)場總線是用于生產(chǎn)現(xiàn)場,測量和控制設(shè)備上,實(shí)現(xiàn)雙向、串行、多點(diǎn)通信的數(shù)據(jù)總線。在制造業(yè)、冶金、交通、建筑、工業(yè)控制、汽車行業(yè)以及其他領(lǐng)域的自動化系統(tǒng)具有廣闊的應(yīng)用前景。CAN是控制器局域網(wǎng)絡(luò)(controller area network)的簡稱,最開始用于在汽車內(nèi)部零件測量與執(zhí)行之間的數(shù)據(jù)通信[3]。CAN屬于現(xiàn)場總線的范疇,是一種有效支持分布式控制和實(shí)時控制的串行通信網(wǎng)絡(luò)。現(xiàn)在,有很多公司根據(jù)CAN協(xié)議開發(fā)出具有CAN通信功能的微控制器芯片,例如摩托羅拉的MC68HC05X4、英特爾的82527、飛利浦的82C250等。然而,傳統(tǒng)51單片機(jī)片內(nèi)部并沒有集成CAN控制器。以往通常會使用SJA1000作為CAN通信的控制器。這種設(shè)計(jì)方式有一些顯著的缺點(diǎn),例如:增加了芯片的數(shù)量,擴(kuò)大了電路板的總體面積,降低了系統(tǒng)編程的靈活性。現(xiàn)在使用IP核重用技術(shù)綜合8051IP核和CAN IP核,就好像生產(chǎn)出一款就有CAN通信功能的8051內(nèi)核單片機(jī)。要實(shí)現(xiàn)這兩個IP核的互連,就必須弄清兩個IP核對外的接口,也就是IP核使用的總線類型。

在CAN IP核中有兩種形式的總線,復(fù)用總線和非復(fù)用總線——Wishbone總線[4]。Wishbone總線是在IP核之間建立一個通用接口完成互連,可以用于在軟核、固核以及硬核之間進(jìn)行互聯(lián)。Wishbone規(guī)范具有如下特點(diǎn):簡單、緊湊,需要很少的邏輯門;數(shù)據(jù)總線寬度可以是8-64位;支持大端(big-endian)和小端(little-endian)。通過前面的介紹得知8051IP核例化后外部使用的是非復(fù)用總線,因此為了讓兩個IP核能方便地互連起來,對于CAN IP核采用Wishbone總線形式。

CAN IP核在默認(rèn)情況下使用的是復(fù)用總線,必須通過修改IP核源文件中的代碼來啟用Wishbone總線。需要注意的是:Wishbone總線的具體實(shí)現(xiàn)是不需要自己編寫的,因?yàn)镃AN IP核中已實(shí)現(xiàn),只需在can_tov.v文件中,添加聲明:define CAN_WISHBONE_IF,來啟動該總線。經(jīng)過測試,發(fā)現(xiàn)如果只是做上述修改,兩個IP核之間并不能很好地通信。原因其實(shí)很簡單,兩個IP核之間雖然外部都是使用非復(fù)用總線技術(shù),但是8051IP核的總線接口類型并不是Wishbone總線。因此,需要認(rèn)真研究這兩條總線的連接細(xì)節(jié),它們的通信方式很相近,造成上述結(jié)果的主要因素是CAN IP核的片選信號有問題。同樣是在can_tov.v文件中,修改assign CS=cs_sync2&(~cs_sync3)語句為assign CS=wb_cyc_i&wb_stb_i。從這里也可以看出,如果選中實(shí)例化好的CAN控制器,需要將wb_cyc_i和wb_stb_i同時置為1。一個完整的CAN節(jié)點(diǎn)的結(jié)構(gòu)如圖2所示。

圖2 CAN節(jié)點(diǎn)結(jié)構(gòu)

3 連接CPU和CAN控制器

完成了自定義IP核后,下一個步驟是如何將它們連接起來。采用原理圖的方式進(jìn)行連接。如圖3所示,連接wrx_o引腳到wb_we_i引腳,p1_o[3]引腳到wb_rst_引腳,int0_i[0..0]引腳到irq_on引腳,datax_o[7..0]總線到wb_dat_i[7..0]總線,datax_i[7..0]總線到wb_dat_o[7..0]總線,adrx_[9..0]總線到wb_stb_i&wb_cyc_i&wb_adr_i[7..0]總線。還必須將wb_clk_i和clk_i連接到外部時鐘信號。wb_std_i和wb_cyc_i信號是非常重要的,它們共同構(gòu)成了芯片的片選信號。當(dāng)上述所有任務(wù)完成后會得到如圖3所示的結(jié)果。

圖3 8051 IP核與CAN IP核連接原理圖

在使用Keil編寫具體的CAN測試程序前,需要定義如下寄存器:

#define MODR(*(unsigned char volatile xdata*)0x0300)

#define CMR(*(unsigned char volatile xdata*)0x0301)

#define SR(*(unsigned char volatile xdata*)0x0302)

#define IR(*(unsigned char volatile xdata*)0x0303)

#define IER(*(unsigned char volatile xdata*)0x0304)

#define BTR0(*(unsigned char volatilexdata*)0x0306)

#define BTR1(*(unsigned char volatilexdata*)0x0307)

#define OCR(*(unsigned char volatile xdata*)0x0308)

#define ACR(*(unsigned char volatile xdata*)0x0310)

……

上述都是CAN控制器的內(nèi)部寄存器,須將其映射到相應(yīng)的地址。地址的第9位和第10位恒為1,就是對應(yīng)wb_std_i和wb_cyc_i引腳置1,保證片選信號有效。可以在Keil下編寫一個應(yīng)用程序,然后編譯并生成hex文件,用它來替換之前在ROM中的hex文件。最后編譯、綜合整個Quartus II項(xiàng)目。實(shí)驗(yàn)結(jié)果如下。

圖4顯示了從FPGA目標(biāo)板發(fā)送數(shù)據(jù)“0f21 31 41 51 61 71 81”到PC機(jī)上的虛擬CAN節(jié)點(diǎn)。

圖4 從FPGA發(fā)送數(shù)據(jù)到PC

圖5 顯示了PC機(jī)上的虛擬CAN節(jié)點(diǎn)發(fā)送數(shù)據(jù)“55 02 03 04 05 06 07 08”到FPGA目標(biāo)板,并且FPGA通過串口將其回送到PC機(jī)的串口上。在PC機(jī)上使用串口調(diào)試助手觀察結(jié)果如圖5所示。

圖5 從PC發(fā)送數(shù)據(jù)到FPGA

4 結(jié)論

文中詳細(xì)描述了利用SOPC技術(shù)設(shè)計(jì)CAN節(jié)點(diǎn)的細(xì)節(jié)。借助合理的用戶自定義模塊接口,CAN節(jié)點(diǎn)在不同場景的應(yīng)用得以實(shí)現(xiàn),并且通過這種新方法設(shè)計(jì)出來的CAN總線也取得令人滿意的結(jié)果。

綜上,基于IP核的設(shè)計(jì)是將所有組件的節(jié)點(diǎn)在單個芯片上實(shí)例化,系統(tǒng)的性能更穩(wěn)定,更可靠。在使用IP核技術(shù)時,實(shí)例化相應(yīng)的模塊后關(guān)鍵步驟是正確處理不同模塊之間的通信接口。IP核的可重用和可重構(gòu),使電子系統(tǒng)的設(shè)計(jì),從原來的硬件布局變?yōu)檐浖幊蹋@著降低了開發(fā)成本,縮短了開發(fā)周期,增強(qiáng)了穩(wěn)定性,并且具有更高的靈活性。因此,基于SOPC技術(shù)的設(shè)計(jì)方式已經(jīng)成為電子系統(tǒng)設(shè)計(jì)的必然趨勢。

[1]WISHBONE System-On-Chip Interconnection Architecture for Portable IP Cores.2002,7.

[2]Information onhttp://www.opencores.org.

[3]Information on http://www.oreganosystems.at.

[4]Altera Corp.CycloneII Device Handbook.Altera,2005.

[5]Jianguo Han and Guiyun Tian:Foundation and Application of Microcontroller.2004.

猜你喜歡
單片機(jī)設(shè)計(jì)
何為設(shè)計(jì)的守護(hù)之道?
《豐收的喜悅展示設(shè)計(jì)》
流行色(2020年1期)2020-04-28 11:16:38
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
瞞天過海——仿生設(shè)計(jì)萌到家
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
設(shè)計(jì)秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計(jì)叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
主站蜘蛛池模板: 91青青在线视频| 亚洲国产在一区二区三区| 无遮挡国产高潮视频免费观看 | 亚洲日韩精品无码专区97| 91香蕉视频下载网站| 青草视频免费在线观看| 亚洲欧洲自拍拍偷午夜色| 亚洲视频免费在线看| 国产成在线观看免费视频| av免费在线观看美女叉开腿| 国产亚洲欧美在线视频| 特级毛片8级毛片免费观看| 成人伊人色一区二区三区| 亚洲无码电影| 国产成人久久777777| 91年精品国产福利线观看久久 | 午夜福利网址| 国产va视频| 毛片免费在线视频| 日韩午夜片| 国产在线观看一区二区三区| 无码内射在线| AV天堂资源福利在线观看| 国产人碰人摸人爱免费视频| 四虎综合网| 国产女人在线| 亚洲欧美不卡视频| 久久超级碰| 日本免费一区视频| 亚洲中久无码永久在线观看软件| 亚洲成在人线av品善网好看| 日本黄色a视频| 99在线免费播放| 国产精品yjizz视频网一二区| 国产91丝袜| a级毛片免费网站| 久久精品一品道久久精品| 天堂网亚洲综合在线| 福利一区三区| 久久国产香蕉| 亚洲一区二区三区国产精华液| 国产成人高精品免费视频| 欧美中日韩在线| 国产精品成人一区二区| 8090成人午夜精品| 五月婷婷激情四射| 91年精品国产福利线观看久久| 亚洲中文字幕久久无码精品A| 亚洲成人手机在线| 日韩在线欧美在线| 日韩久久精品无码aV| 日韩在线第三页| 色婷婷色丁香| 四虎成人精品| 日本草草视频在线观看| 一区二区三区在线不卡免费| 九九热精品在线视频| 成人综合在线观看| 福利在线不卡| 精品无码一区二区三区电影| 欧美天天干| 日韩欧美国产精品| 国产91高跟丝袜| 中文字幕无码电影| 欧美色伊人| 国产一区二区三区日韩精品| 国产成人亚洲精品无码电影| 亚洲中文无码av永久伊人| 亚洲无码高清一区二区| 国产精品欧美激情| 91无码网站| 久久人体视频| 91久久大香线蕉| 一区二区三区毛片无码| 国产91麻豆视频| 久久综合婷婷| 国产丝袜无码精品| 国产精品浪潮Av| a在线亚洲男人的天堂试看| 国内精品视频区在线2021| 九九九久久国产精品| 精品欧美一区二区三区久久久|