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
主站蜘蛛池模板: 一级全黄毛片| 一级毛片在线免费看| 在线观看的黄网| 亚洲欧美一级一级a| 中文字幕一区二区人妻电影| 美女毛片在线| 91青青在线视频| 日韩AV手机在线观看蜜芽| 欧美a级完整在线观看| 欧美日韩第二页| 99精品福利视频| 91成人在线免费视频| 在线视频亚洲欧美| 久久青草热| www.亚洲色图.com| 亚洲天堂网2014| 无码中文字幕乱码免费2| 欧美中文字幕在线视频| 中文字幕在线看| 91欧美在线| 精品伊人久久久香线蕉| 又大又硬又爽免费视频| 日韩在线欧美在线| 五月丁香伊人啪啪手机免费观看| 成人毛片免费观看| 国产欧美日韩视频一区二区三区| 日韩免费毛片| 四虎国产成人免费观看| 在线欧美日韩国产| 国产成人精品高清在线| 亚洲成人福利网站| 色婷婷在线影院| 国产凹凸视频在线观看| 专干老肥熟女视频网站| 国产综合亚洲欧洲区精品无码| 国产网站在线看| 视频二区欧美| 国产美女在线免费观看| 成人在线观看不卡| 一级片一区| 国产精品欧美日本韩免费一区二区三区不卡 | 婷婷激情五月网| 国产精品免费p区| 91成人在线免费观看| 久久伊人色| 亚洲第一视频免费在线| 不卡无码网| 欧美另类精品一区二区三区| 亚洲国产精品VA在线看黑人| 国产免费久久精品99re不卡| 久久精品嫩草研究院| 久久国产乱子| 无码免费视频| 色视频国产| 亚洲精品天堂自在久久77| 99久久性生片| 亚洲婷婷丁香| 伊人天堂网| 夜夜爽免费视频| 视频二区欧美| 国产网站免费观看| 国产在线第二页| 露脸国产精品自产在线播| 日韩中文字幕亚洲无线码| 新SSS无码手机在线观看| 成人在线观看不卡| 在线观看精品自拍视频| 国产又黄又硬又粗| 成人看片欧美一区二区| 中文字幕欧美成人免费| 欧美日韩成人在线观看| 在线a视频免费观看| 丰满少妇αⅴ无码区| 成人精品亚洲| 国产一区二区网站| 久久综合激情网| 亚洲国产欧美国产综合久久 | 丁香婷婷激情网| 欧美日韩一区二区在线免费观看| 国产系列在线| 久久精品丝袜高跟鞋| 999精品色在线观看|