www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于網(wǎng)絡(luò)加載的嵌入式BootLoader的設(shè)計(jì)與實(shí)現(xiàn)

摘要:由于嵌入式系統(tǒng)引導(dǎo)裝載程序(BootLoader)的網(wǎng)絡(luò)加載方式在產(chǎn)品開(kāi)發(fā)初期階段的廣泛應(yīng)用,因此基于網(wǎng)絡(luò)的BootLoader設(shè)計(jì)與實(shí)現(xiàn)具有較強(qiáng)的實(shí)際意義。提出了基于網(wǎng)絡(luò)加載的BootLoader整套設(shè)計(jì)與解決方案,并將該方案應(yīng)用到實(shí)際產(chǎn)品DVB—C中。最后,通過(guò)BootLoad er引導(dǎo)裝載過(guò)程的測(cè)試與分析,驗(yàn)證該方案的可行性與高效性。
關(guān)鍵詞:嵌入式系統(tǒng);BootLoader;網(wǎng)絡(luò);DVB—C機(jī)頂盒

    嵌入式系統(tǒng)從軟件結(jié)構(gòu)層次的角度來(lái)看,一般由引導(dǎo)裝載程序(BootLoader,BSP)、操作系統(tǒng)和應(yīng)用程序幾部分組成。然而在有的嵌入式系統(tǒng)中,操作系統(tǒng)和應(yīng)用程序存放在系統(tǒng)以外的設(shè)備中,如網(wǎng)絡(luò)、硬盤等,整個(gè)系統(tǒng)只有引導(dǎo)裝載程序。因此BootLoader是嵌入式系統(tǒng)設(shè)計(jì)中比較重要的一部分。
    在嵌入式系統(tǒng)的引導(dǎo)中,按照應(yīng)用程序存放位置,可以有3種不同的加載方式:固態(tài)存儲(chǔ)媒體、磁盤以及網(wǎng)絡(luò),每種方式都會(huì)有自己特有的配置和用法。3種設(shè)置方式各有其優(yōu)缺點(diǎn),固態(tài)儲(chǔ)存媒體啟動(dòng)方式一般適用于帶有ROM/FLASH的嵌入式系統(tǒng)中,是大多數(shù)嵌入式設(shè)備的首選方案如手機(jī),mp3等,但當(dāng)應(yīng)用程序較大的情況下,為了降低嵌入式設(shè)備的單價(jià),磁盤啟動(dòng)方式也被大量使用,典型應(yīng)用如SDH電信傳輸網(wǎng)絡(luò)設(shè)備測(cè)試儀ANT-20等,而基于網(wǎng)絡(luò)加載方式則是最便宜的嵌入式設(shè)備的應(yīng)用方案,應(yīng)用程序存放在網(wǎng)絡(luò)服務(wù)器端,嵌入式設(shè)備啟動(dòng)時(shí),只需要將它通過(guò)網(wǎng)絡(luò)當(dāng)?shù)絻?nèi)存并運(yùn)行,一方面可以快速解決應(yīng)用程序升級(jí)問(wèn)題,另一方面也可以降低嵌入設(shè)備的整體成本,且在開(kāi)發(fā)初期這種方式也能大幅提高調(diào)試速度,典型的應(yīng)用如嵌入式設(shè)備的瘦客戶端。

1 基于網(wǎng)絡(luò)加載的BootLoader方案設(shè)計(jì)
    
這種方案重點(diǎn)解決兩個(gè)問(wèn)題,一是嵌入式設(shè)備加電后啟動(dòng)前與服務(wù)器端之間的通信與聯(lián)系,二是嵌入設(shè)備在啟動(dòng)過(guò)程中應(yīng)用程序下載方式的實(shí)現(xiàn)。前者需要將嵌入式設(shè)備驅(qū)動(dòng)起來(lái),實(shí)現(xiàn)通信能力,網(wǎng)卡驅(qū)動(dòng)是必須實(shí)現(xiàn)的步驟,后者需要通過(guò)相關(guān)的協(xié)議棧將應(yīng)用程序下載到系統(tǒng)內(nèi)存,運(yùn)行起來(lái)。本文重點(diǎn)介始基于UDP/IP協(xié)議棧的(DHCP、TFIP、NFS)加載方案設(shè)計(jì)。
1.1 BooiLoader中網(wǎng)卡驅(qū)動(dòng)的設(shè)計(jì)
    
網(wǎng)絡(luò)適配器(網(wǎng)卡)一般由可編程數(shù)據(jù)鏈路控制器、曼徹斯特編碼/譯碼器、收發(fā)器接口和控制電路等幾部分組成,其中可編程數(shù)據(jù)鏈路控制器由微處理器和網(wǎng)絡(luò)管理部分等組成,如圖1所示。


    在BootLoader網(wǎng)卡驅(qū)動(dòng)設(shè)計(jì)中,主要包括3種基本的操作(文中以Realtek8139網(wǎng)卡作為實(shí)例進(jìn)行具體分析):
    1)網(wǎng)卡的初始化
    應(yīng)完成的工作是初始化網(wǎng)卡中的相關(guān)硬件,包括網(wǎng)卡中斷向量的設(shè)置、網(wǎng)卡接收與發(fā)送緩沖區(qū)在內(nèi)存中的映射、網(wǎng)卡數(shù)據(jù)結(jié)構(gòu)的初始化等。
    2)數(shù)據(jù)包發(fā)送
    發(fā)送和發(fā)送控制部分負(fù)責(zé)幀的發(fā)送。發(fā)送部分接受來(lái)自“NBZ曼徹斯特轉(zhuǎn)換器”的曼徹斯特碼的數(shù)據(jù),并在發(fā)送控制部分允許的條件下將數(shù)據(jù)發(fā)送到媒體,發(fā)送的數(shù)據(jù)稱為TxD。發(fā)送控制部分判定是否進(jìn)行發(fā)送,這種判定基于LAN管理部分和TxD來(lái)進(jìn)行。
    3)數(shù)據(jù)包的接收
    接收和接收控制部分負(fù)責(zé)幀的接收。這一部分產(chǎn)生網(wǎng)絡(luò)是否有載波存在的信號(hào),產(chǎn)生的依據(jù)是從RxD中獲得。因此,網(wǎng)絡(luò)上來(lái)的信號(hào)一方面饋送給接收器,另一方面要饋送給接收控制部分。接收控制部分根據(jù)LAN管理部分和媒體上接收的信號(hào)判定是否使接收器工作。
1.2 網(wǎng)絡(luò)服務(wù)器端應(yīng)用方案的設(shè)計(jì)
    
在網(wǎng)絡(luò)加載BootLoader中,使用到的應(yīng)用層協(xié)議有DHCP、TFTP和NFS。目標(biāo)平臺(tái)在工作中,需要服務(wù)器端提供以上協(xié)議的服務(wù):
    1)建立服務(wù)器端的DHCP服務(wù)
    該服務(wù)完成的功能是為目標(biāo)平臺(tái)提供有效的IP地址分配,保證目標(biāo)平臺(tái)與服務(wù)器之間正常通信時(shí)地址唯一。其配置過(guò)程如下:
    在確信DHCP協(xié)議已經(jīng)被正確安裝后,需修改/etc/dhcpd.conf文件,例如:
    [!--empirenews.page--]
    其中subnet是目標(biāo)機(jī)與主機(jī)共同的子網(wǎng),netmask是它們的子網(wǎng)掩碼。Hardware ethernet是目標(biāo)機(jī)的網(wǎng)絡(luò)硬件地址,可以通過(guò)fixed-address給目標(biāo)分配一個(gè)固定的IP地址,當(dāng)目標(biāo)機(jī)啟動(dòng)時(shí),就會(huì)自己獲得這個(gè)IP地址。Option host-name是目標(biāo)機(jī)的機(jī)器名。當(dāng)主機(jī)與目標(biāo)機(jī)直接連接時(shí),option routers指向主機(jī)的地址,當(dāng)它們不是直接連接,而是通過(guò)路由時(shí),option routers的值為真正的routers地址值,同理optionsubnet-mask為option routers網(wǎng)絡(luò)的子網(wǎng)掩碼。Filename為目標(biāo)機(jī)從TFTP服務(wù)端下載的文件名,next-server為提供TFTP服務(wù)的位置。
    最后請(qǐng)檢查/var/state/dhcp/dhcpd.leases文件是否存在,當(dāng)一切準(zhǔn)備好后,就可以運(yùn)行DHCP服務(wù)了:
    #/etc/init.d/dhcpd start
    2)建立服務(wù)器端的TFTP服務(wù)
    該服務(wù)在基于網(wǎng)絡(luò)的BootLoader下載應(yīng)用程序時(shí)使用,它類似于FTP服務(wù),但它不需要向服務(wù)器提供用戶名與密碼,且其下載速度比FTP要快。其配置過(guò)程如下:
    在確信TFTP協(xié)議已經(jīng)被正確安裝后,
    ①修改文件/etc/xinetd.conf,打開(kāi)tftp的支持;
    ②修改文件/etc/xinetd.d/tftp,例如:
    
    參數(shù)server_args為tftp服務(wù)指定的目錄,其余參數(shù)理解比較容易。
    設(shè)置完畢后,請(qǐng)重新啟xinetd,運(yùn)行tap服務(wù)。
    3)建立服務(wù)器端的NFS服務(wù)
    目標(biāo)平臺(tái)在Linux運(yùn)行初始化時(shí),需要借助該服務(wù)來(lái)掛載根文件系統(tǒng)。其配置過(guò)程如下:
    在確定NFS已經(jīng)正確安裝后,請(qǐng)修改文件/etc/exports,例如:
    /home/karim/ctrl—rooffs 192.168.172.10 (rw,no_root_squash)
    其中目錄/home/karim/ctrl-rooffs可以修改為服務(wù)器端的根文件系統(tǒng)存放的目錄。192.168.172.10為服務(wù)器端的IP地址。
    修改完成后只需要重新啟動(dòng)NFS服務(wù)即可,NFS服務(wù)提供網(wǎng)絡(luò)文件系統(tǒng)功能,便于應(yīng)用程序的管理與使用。
1. 3 客戶端嵌入式BootLoader的設(shè)計(jì)
    
在基于網(wǎng)絡(luò)加載的BootLoader系統(tǒng)中,應(yīng)用程序文件一般被存放在網(wǎng)絡(luò)服務(wù)器。系統(tǒng)啟動(dòng)后,BootLoader需要先驅(qū)動(dòng)網(wǎng)絡(luò)適配器,并通過(guò)UDP/IP協(xié)議棧(BOOTP/DHCP、TFTP協(xié)議等),將映像文件下載到目標(biāo)機(jī)端的SDRAM運(yùn)行,當(dāng)嵌入式linux操作系統(tǒng)初始化時(shí),它借助NFS協(xié)議將根文件系統(tǒng)掛載到服務(wù)器端。
    在該方案中,BootLoader程序的主要工作步驟如下:
    1)基本硬件的初始化:包括屏蔽所有的中斷、初始化所有的硬件、設(shè)置/裝載系統(tǒng)setup值、設(shè)置CPU的時(shí)鐘和頻率、RAM的初始化等;
    2)讀取網(wǎng)絡(luò)參數(shù)配置文件:
    該配置文件主要存放系統(tǒng)使用網(wǎng)絡(luò)過(guò)程中需要的一些參數(shù),包括MAC地址、tftp服務(wù)器的IP地址、Kernel文件名、應(yīng)用程序文件名等。
    3)初始化PCI接口,并驅(qū)動(dòng)網(wǎng)卡;
    4)通過(guò)DHCP協(xié)議獲取目標(biāo)平臺(tái)的IP地址;
    目標(biāo)平臺(tái)先廣播發(fā)送ARP包,當(dāng)DHCP服務(wù)器接收到該ARP包后,就會(huì)根據(jù)ARP包中的硬件地址從地址表中分配一個(gè)有效的IP地址,并發(fā)送應(yīng)答報(bào)文給目標(biāo)平臺(tái)。
    5)通過(guò)tftp協(xié)議下載kernel代碼至內(nèi)存SDRAM;
    6)運(yùn)行Linux內(nèi)核和系統(tǒng)應(yīng)用程序。[!--empirenews.page--]
    該方案的執(zhí)行邏輯可以用圖2所示。



2 基于網(wǎng)絡(luò)加載的BootLoader的應(yīng)用實(shí)現(xiàn)
    
本文設(shè)計(jì)的基于網(wǎng)絡(luò)加載的嵌入式BootLoader應(yīng)用于DVB-C電視機(jī)頂盒產(chǎn)品中,在DVB-C機(jī)頂盒中,一般有網(wǎng)口用于與內(nèi)容服務(wù)器進(jìn)行交互,如VOD及網(wǎng)頁(yè)瀏覽器等功能。其硬件框圖組成如圖3所示。


    該DVB-C電視機(jī)頂盒中,CPU是Sunplus公司生產(chǎn)的32位雙核RISC微控制器SPH1003。此外,系統(tǒng)還集成有Semsung公司的Tuner,其功能是從cable中調(diào)制出TS流,其內(nèi)容為電視節(jié)目流及電視節(jié)目輔助信息(如EPG,電視圖文信息)等。通過(guò)電視機(jī)頂盒的集成網(wǎng)口可以實(shí)現(xiàn)電視機(jī)頂盒軟件(主要是嵌入式Linux內(nèi)核,根文件系統(tǒng)及應(yīng)用程序三個(gè)部分)的下載與啟動(dòng)。
    在該DVB—C機(jī)頂盒中,BootLoader的裝載程序主要是實(shí)現(xiàn)從網(wǎng)絡(luò)下載嵌入式Linux內(nèi)核并且啟動(dòng)系統(tǒng)。在由BootLoader完成系統(tǒng)的硬件初始化后,程序?qū)?huì)跳轉(zhuǎn)到網(wǎng)絡(luò)Loader程序中,由它驅(qū)動(dòng)網(wǎng)卡,并啟動(dòng)tftp請(qǐng)求,從網(wǎng)絡(luò)服務(wù)器端通過(guò)tftp協(xié)議下載指定文件,并運(yùn)行起來(lái),其軟件運(yùn)行如1.3部分。這種應(yīng)用可以有效在利用機(jī)盒中的網(wǎng)卡網(wǎng)絡(luò)結(jié)構(gòu),從而降低機(jī)頂盒的整體成本(少去flash/ROM芯片及其周邊控制硬件等),同時(shí)也有利于及時(shí)更新應(yīng)用程序及嵌入式內(nèi)核等,實(shí)現(xiàn)機(jī)頂盒瘦客戶端目的和及時(shí)維護(hù)功能。

3 BootLoader引導(dǎo)裝載過(guò)程的測(cè)試與分析
3.1 測(cè)試用例設(shè)計(jì)
    
在DVB-C機(jī)頂盒引導(dǎo)裝載過(guò)程的測(cè)試中,主要包括單元測(cè)試與集成測(cè)試兩個(gè)方面。因此在設(shè)計(jì)測(cè)試用倒時(shí),主要有單元測(cè)試用例及集成測(cè)試用例。其測(cè)試用例設(shè)計(jì)如表1、表2所示。


3.2 測(cè)試結(jié)果分析
    
根據(jù)上表測(cè)試用例的設(shè)計(jì),分析結(jié)果如下:
    1)在單元測(cè)試中,根據(jù)每個(gè)函數(shù)的功能及測(cè)試結(jié)果要求,分別進(jìn)行代碼覆蓋率的測(cè)試、參數(shù)邊界值測(cè)試及函數(shù)運(yùn)行結(jié)果的測(cè)試,其測(cè)試結(jié)果全都能達(dá)到程序要求;
    2)在集成測(cè)試中,對(duì)網(wǎng)絡(luò)環(huán)境的測(cè)試主要集中在:正常的網(wǎng)絡(luò)環(huán)境,運(yùn)行不正常的網(wǎng)絡(luò)環(huán)境兩方面,程序?qū)@兩種情況能夠正確地識(shí)別且做出不同的響應(yīng);對(duì)不同的目標(biāo)文件進(jìn)行了下載測(cè)試,分別比較原文件與下載到SDRAM的內(nèi)容,兩者完全一致,且在多次下載測(cè)試中成功率達(dá)到100%;對(duì)DVB-C機(jī)頂盒的啟動(dòng)過(guò)程及時(shí)間進(jìn)行了專項(xiàng)測(cè)試,這項(xiàng)測(cè)試是BootLoader引導(dǎo)裝載程序最重要的性能測(cè)試,其啟動(dòng)過(guò)程的成功率達(dá)到100%,啟動(dòng)時(shí)間大致為1 s。

4 結(jié)束語(yǔ)
    
文中介紹的基于網(wǎng)絡(luò)加載的BootLoader整套設(shè)計(jì)與解決方案,具有良好的模塊結(jié)構(gòu)和可擴(kuò)展性,為應(yīng)用于其它系統(tǒng)奠定了基礎(chǔ)。同時(shí),在實(shí)際產(chǎn)品設(shè)計(jì)中已大量應(yīng)用在DVB-C機(jī)頂盒中,該DVB-C機(jī)頂盒與一般機(jī)頂盒相比,節(jié)省20元左右,在批量生產(chǎn)中(十萬(wàn)臺(tái)左右),可實(shí)現(xiàn)上百萬(wàn)元的經(jīng)濟(jì)效益,因此該方案具有很強(qiáng)的市場(chǎng)競(jìng)爭(zhēng)力。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉