下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于 NiosII 的嵌入式網(wǎng)絡(luò)通信系統(tǒng)1 引言隨著 internet 技術(shù)的發(fā)展,在許多領(lǐng)域都引起了飛躍性的變化。嵌入式系統(tǒng)應(yīng)用領(lǐng)域中一個(gè) 新的趨勢(shì)就是開(kāi)始在嵌入式設(shè)備上集成網(wǎng)絡(luò)通信功能, 比如網(wǎng)絡(luò)監(jiān)控、 網(wǎng)絡(luò)數(shù)據(jù)采集系統(tǒng)等, 以便于通過(guò)網(wǎng)絡(luò)與遠(yuǎn)程設(shè)備進(jìn)行信息的交互和增強(qiáng)系統(tǒng)的互連性, 僅僅需要一根網(wǎng)線就可以 輕輕松松完成系統(tǒng)的互連。目前市場(chǎng)上的嵌入式處理器的種類很多。 altera 公司推出了第二代片上可編程嵌入式軟核處 理器 nios ii ,再配上其低成本、 高性價(jià)比的 fpga 器件,使得嵌入式系統(tǒng)的開(kāi)發(fā)變得越發(fā)方便。再者由于nios ii可配置和fpga器件可編程的特點(diǎn),與專用硬件
2、相比靈活性得有很大的優(yōu)勢(shì), 從而使得 fpga 器件在現(xiàn)代電子設(shè)計(jì)中得到廣泛的應(yīng)用。2 系統(tǒng)設(shè)計(jì)2.1 nios ii 簡(jiǎn)介nios ii 嵌入式軟核處理器是 altera 公司推出的第二代片上可編程的軟核處理器, nios ii 是可 配置的, 用戶可以根據(jù)自己的實(shí)際需要進(jìn)行處理器的配置, 以達(dá)到資源的合理使用, 其性能 可以超過(guò)200dmips。nios ii采用哈佛結(jié)構(gòu),具有32位指令集,32位數(shù)據(jù)通道和可配置的指令及數(shù)據(jù)緩沖,而且支持用戶自定義指令(最多 256 個(gè))以擴(kuò)展 cpu 指令集,提升系統(tǒng)的性 能,為可編程片上系統(tǒng)(sopc)設(shè)計(jì)提供了一套完整的解決方案。nios ii提供了
3、三種內(nèi)核:nios ii/f 是一種高性能的內(nèi)核,速度最快但消耗的資源最多; nios ii/e 是低成本內(nèi)核,速度最 慢消耗的資源最少; nios ii/s 是一種性能和成本折中的內(nèi)核。本設(shè)計(jì)采用的是 nios ii/s 內(nèi)核。nios ii 的優(yōu)勢(shì)就在于其靈活性,可以根據(jù)用戶的需求進(jìn)行靈活的配置和裁剪?;趎ios ii 軟核的系統(tǒng)設(shè)計(jì)利用 altera公司提供的系統(tǒng)設(shè)計(jì)工具sopc builder和集成開(kāi)發(fā)環(huán)境 niosii ide可以進(jìn)行軟硬件協(xié)同設(shè)計(jì), 很大程度上縮短開(kāi)發(fā)周期, 在系統(tǒng)開(kāi)發(fā)的任何階段要都可以很方便 的對(duì)系統(tǒng)進(jìn)行修改。 fpga 器件豐富的邏輯資源, 結(jié)合 nios i
4、i 強(qiáng)大的處理能力, 將為嵌入式系 統(tǒng)設(shè)計(jì)提供有效的解決方案。2.2 系統(tǒng)設(shè)計(jì)圖 1 系統(tǒng)模塊圖系統(tǒng)模塊圖如圖 1 所示。設(shè)計(jì)采用了 altera 公司的 cyclone ii 系列芯片。在其中配置 niosii 軟核處理器控制外圍設(shè)備和協(xié)議棧的運(yùn)行。而且添加了一個(gè)計(jì)算校驗(yàn)和的用戶指令(cal_checksum)。片上 ram 用作內(nèi)存運(yùn)行程序;flash 使用了 sharp 公司的 lh28f160s3t-l13a, 用來(lái)存儲(chǔ)程序和配置信息,系統(tǒng)上電后,先將程序從 flash 中拷貝到片上 ram 運(yùn)行;網(wǎng)絡(luò)接 口芯片使用smsc公司的10/100m以太網(wǎng)接口控制芯片 Ian9c111,所以
5、在sopc builder中配置 系統(tǒng)時(shí), 需要加上 altera 免費(fèi)提供的 lan9c111 接口控制器, 嵌入式設(shè)備通過(guò) lan9c111 就可以接入以太網(wǎng),與網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行網(wǎng)絡(luò)通信; sdram 選用 micron 公司的 mt48lc8m16a2 , 用來(lái)緩存網(wǎng)絡(luò)數(shù)據(jù),其中 sdram 控制器使用 altera 免費(fèi)提供的 sdram 控制器。要提高系統(tǒng)的性能, 一方面是提高處理器的處理能力; 另一方面就是將用軟件處理比較費(fèi)時(shí) 間的模塊使用硬件模塊來(lái)實(shí)現(xiàn)。 經(jīng)過(guò)分析發(fā)現(xiàn), 在網(wǎng)絡(luò)協(xié)議棧的運(yùn)行過(guò)程中, 最耗費(fèi)時(shí)間的 是校驗(yàn)和的計(jì)算, 尤其是當(dāng)數(shù)據(jù)量非常大的時(shí)候。 為此, 專門(mén)用硬
6、件定制了一個(gè)用戶指令校 驗(yàn)和計(jì)算指令( cal_checksum ),對(duì)數(shù)據(jù)校驗(yàn)和的計(jì)算實(shí)現(xiàn)硬件加速,作為一個(gè)指令添加到 niosii 系統(tǒng)中,在協(xié)議棧程序中調(diào)用來(lái)縮短計(jì)算校驗(yàn)和的時(shí)間,提高處理速度,達(dá)到提升系 統(tǒng)性能的目的。2.3 校驗(yàn)和計(jì)算指令 (cal_chkusm)在上面的分析中已經(jīng)提到過(guò),在整個(gè)協(xié)議棧的處理中,最耗時(shí)間的就是數(shù)據(jù)校驗(yàn)和的計(jì)算, 特別是當(dāng)數(shù)據(jù)長(zhǎng)度很大時(shí)。所以在設(shè)計(jì)中將數(shù)據(jù)校驗(yàn)和的計(jì)算采用硬件模塊來(lái)實(shí)現(xiàn),作為 niosii 的一個(gè)用戶自定義指令,以提高校驗(yàn)和計(jì)算的速度。在協(xié)議棧的移植過(guò)程中,將數(shù)據(jù) 的寬度修改為 16 位,方便最后將 16 位校驗(yàn)和的計(jì)算結(jié)果添加到相應(yīng)的域
7、。校驗(yàn)和的計(jì)算需要很多個(gè)時(shí)鐘周期才能完成,所以校驗(yàn)和計(jì)算指令使用了 multi-cycle 用戶 指令結(jié)構(gòu)。 multi-cycle 用戶指令的端口操作有:固定長(zhǎng)度和可變長(zhǎng)度。因?yàn)榫W(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù) 長(zhǎng)度是不斷變化的,所以校驗(yàn)和計(jì)算指令選擇可變長(zhǎng)度操作,這也影響到端口信號(hào)的選擇。multi-cycle 用戶指令結(jié)構(gòu)的信號(hào)有: reset,clk ,clk_en ,start,dataa31:0 ,datab31:0 ,done, result31:0 。其中除了 reset,clk ,clk_en 三個(gè)信號(hào)外,其他信號(hào)都是可選的,要根據(jù)具體的 應(yīng)用選擇。本設(shè)計(jì)中校驗(yàn)和計(jì)算指令用到了start, d
8、ataa31:0, done, result31:0。start信號(hào)作為數(shù)據(jù)有效信號(hào),dataa31:0為數(shù)據(jù)輸入信號(hào),當(dāng)校驗(yàn)和計(jì)算完成時(shí) done信號(hào)有效,通 知 cpu 讀取 result 端口上的數(shù)據(jù),因此計(jì)算校驗(yàn)和指令邏輯必須確保當(dāng)done 信號(hào)有效時(shí),result 端口上的數(shù)據(jù)有效。在 sopc builder 中添加校驗(yàn)和計(jì)算指令,然后重新產(chǎn)生系統(tǒng),再在 quartusii 中更新并編譯, 在ide的重新編譯一次工程,系統(tǒng)庫(kù)中的“system.h”文件包含校驗(yàn)和計(jì)算指令的宏定義如下:#define alt_ci_cal_chksum_n 0x00000000#define alt_
9、ci_cal_chksum(a) _builtin_custom_ini(alt_ci_cal_chksum_n,(a)用戶只需要在源文件中將計(jì)算校驗(yàn)和部分使用上面的宏做相應(yīng)的替換就可以,對(duì)用戶來(lái)說(shuō)這再簡(jiǎn)單不過(guò)了,就像是調(diào)用一個(gè)子函數(shù)。由此可見(jiàn),基于 niosii 軟核處理器開(kāi)發(fā)的嵌入式系 統(tǒng),具有一般嵌入式處理器不能比擬的優(yōu)勢(shì)。3 軟件設(shè)計(jì)協(xié)議棧使用了現(xiàn)在在嵌入式應(yīng)用領(lǐng)域已經(jīng)很成熟的uip。如果使用altera提供的lwip協(xié)議棧,那么就得考慮其在嵌入式操作系統(tǒng)上的移植, 這樣無(wú)疑會(huì)增加系統(tǒng)軟件設(shè)計(jì)的復(fù)雜度和代碼 量。設(shè)計(jì)的關(guān)鍵部分是 uip 協(xié)議棧在 nios ii 上的移植。針對(duì) nio
10、sii 的特點(diǎn),將 uip 做適當(dāng)?shù)男薷模?使 niosii 處理器的處理能力得到充分發(fā)揮,提高系統(tǒng)的性能。 uip 原來(lái)是針對(duì) 8 位處理器的, 現(xiàn)在將其修改為 16 位,這樣理論上處理能力就提高了一倍,系統(tǒng)的性能也就提升了一倍。根據(jù) tcp/ip 模型結(jié)構(gòu), 數(shù)據(jù)鏈路層和物理層使用網(wǎng)絡(luò)接口芯片 lan9c111 完成; 網(wǎng)絡(luò)層和傳輸 層協(xié)議解析在 niosii 中由嵌入式 tcp/ip 協(xié)議棧實(shí)現(xiàn);應(yīng)用層由用戶根據(jù)需要編寫(xiě)。各個(gè)模塊 合起來(lái)共同完成網(wǎng)絡(luò)通信功能。3.1 底層驅(qū)動(dòng)程序的編寫(xiě)Ian9c111芯片的底層驅(qū)動(dòng)是由altera免費(fèi)提供的,可以調(diào)用這些底層驅(qū)動(dòng)來(lái)完成初始化、通信建立、
11、監(jiān)聽(tīng)等通信功能。 這些底層驅(qū)動(dòng)函數(shù)是已經(jīng)封裝好的, 用戶不需要了解其細(xì)節(jié)就可 以編寫(xiě)網(wǎng)絡(luò)通信程序, 但是為了進(jìn)行高級(jí)的開(kāi)發(fā), 必須對(duì)整個(gè)程序的工作機(jī)制有一定的了解。 幾個(gè)主要的底層驅(qū)動(dòng)函數(shù)來(lái)完成啟動(dòng)、復(fù)位和初始化phy、以太網(wǎng)packet的收發(fā)及中斷處理函數(shù)等工作:static void r_lan91c111_enable ():用于啟動(dòng)芯片工作,使能發(fā)送和接收。intnr_lan91c111_reset ():對(duì)芯片盡心復(fù)位。static int r_lan91c111_init_phy ( ):完成物理層芯片的初始化。int nr_lan91c111_set_irq ():設(shè)置芯片的中斷
12、上層的通信程序調(diào)用這些函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)接口的控制,通信功能的實(shí)現(xiàn)以此為基礎(chǔ)。3.2 通信軟件的實(shí)現(xiàn)通信軟件完成設(shè)備之間通信的主要功能,主要是 uip 協(xié)議棧的。傳輸層實(shí)現(xiàn)了 tcp 和 udp, 這在軟件設(shè)計(jì)時(shí)就需要做不同的考慮, 不同的數(shù)據(jù)傳輸需求要求使用不同的傳輸層協(xié)議, 比 如,實(shí)時(shí)性要求高的傳輸應(yīng)用就要求使用無(wú)連接的 udp 協(xié)議;對(duì)實(shí)時(shí)性要求不高并且要保證 數(shù)據(jù)傳輸?shù)目煽啃缘膽?yīng)用使用面向連接的、可靠的tcp協(xié)議可以保證傳輸?shù)目煽啃?。程序框架如下:main()netif_init(); / 網(wǎng)絡(luò)接口初始化uip_init(); / 協(xié)議棧初始化arp_table_init(); / arp
13、 表初始化netconn_new() / 建立新的連接netconn_bind() / 綁定端口號(hào)netconn_listen() / 偵聽(tīng)端口while(1)if ( 收到數(shù)據(jù) )/處理接收的數(shù)據(jù)else if(發(fā)送數(shù)據(jù)) / 發(fā)送數(shù)據(jù)else / 返回準(zhǔn)備下次處理圖 2 是軟件處理流程。圖2 通信軟件流程圖4 結(jié)束語(yǔ)采用 niosii 進(jìn)行系統(tǒng)設(shè)計(jì),由于 sopc builder 工具的強(qiáng)大系統(tǒng)開(kāi)發(fā)功能再加上 niosii ide 集成 開(kāi)發(fā)環(huán)境, 使得系統(tǒng)的設(shè)計(jì)變得簡(jiǎn)單方便、 可擴(kuò)展性強(qiáng), 并且系統(tǒng)軟件的設(shè)計(jì)與系統(tǒng)設(shè)計(jì)同時(shí)進(jìn)行,大大縮短開(kāi)發(fā)周期。在該網(wǎng)絡(luò)平臺(tái)的設(shè)計(jì)中,使用了嵌入式領(lǐng)域非常成熟的uip
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度奶牛場(chǎng)有機(jī)肥料生產(chǎn)與銷售合作協(xié)議4篇
- 2025年度電梯安裝工程應(yīng)急預(yù)案合同4篇
- 二零二五年度木材運(yùn)輸車輛租賃及維護(hù)合同4篇
- 二零二五年度儲(chǔ)能電站項(xiàng)目合同能源管理優(yōu)化升級(jí)協(xié)議3篇
- 2025年個(gè)人魚(yú)塘承包與漁業(yè)產(chǎn)業(yè)鏈合作合同3篇
- 2025年度某三期護(hù)坡樁工程生態(tài)保護(hù)與恢復(fù)施工合同3篇
- 二零二五年度城市軌道交通建設(shè)融資合同范本8篇
- 2025年度電梯設(shè)備安全性能評(píng)估合同4篇
- 2025年度智能家居系統(tǒng)個(gè)人商鋪安裝及維護(hù)服務(wù)合同
- 二零二五年度航天航空材料出樣及研發(fā)合作協(xié)議2篇
- 平安產(chǎn)險(xiǎn)陜西省地方財(cái)政生豬價(jià)格保險(xiǎn)條款
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見(jiàn)面試問(wèn)題含HR問(wèn)題考察點(diǎn)及參考回答
- 詢價(jià)函模板(非常詳盡)
- 《AI營(yíng)銷畫(huà)布:數(shù)字化營(yíng)銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 一個(gè)28歲的漂亮小媳婦在某公司打工-被老板看上之后
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫(xiě)話教學(xué)評(píng)語(yǔ)方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
- GB/T 16474-2011變形鋁及鋁合金牌號(hào)表示方法
評(píng)論
0/150
提交評(píng)論