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

        ?

        談如何通過(guò)網(wǎng)絡(luò)接口實(shí)現(xiàn)DSP片外Flash在線系統(tǒng)編程

        2009-06-17 06:48:16陳洪鋼黃華偉
        關(guān)鍵詞:網(wǎng)絡(luò)接口

        陳洪鋼 黃華偉

        摘要:文章針對(duì)傳統(tǒng)設(shè)計(jì)采用RS232作為數(shù)據(jù)傳輸手段而造成的速度過(guò)慢的問(wèn)題,設(shè)計(jì)了一種通過(guò)網(wǎng)絡(luò)接口,使用一種特殊的UDP包對(duì)BF531片外Flash在線系統(tǒng)編程的方案,并給出了在系統(tǒng)編程的具體步驟和實(shí)現(xiàn)結(jié)果。實(shí)踐證明該方法無(wú)須實(shí)現(xiàn)TCP/IP協(xié)議棧,速度快,體積很小,很好地解決了以DSP為核心的應(yīng)用系統(tǒng)軟件的維護(hù)和升級(jí)問(wèn)題。

        關(guān)鍵詞:BF531;Flash;網(wǎng)絡(luò)接口;ISP;UDP

        中圖分類(lèi)號(hào):TP368文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-2374(2009)07-0129-02

        在以DSP為核心的現(xiàn)代電子設(shè)備中,通常將可執(zhí)行代碼存放在Flash中,設(shè)備啟動(dòng)的時(shí)候,DSP通過(guò)引導(dǎo)加載機(jī)制將Flash中的代碼轉(zhuǎn)移到高速存儲(chǔ)器中運(yùn)行。Flash在系統(tǒng)編程(ISP)是指以在不改變硬件環(huán)境的條件下,在線將程序代碼(固件)下載到Flash中,從而方便地實(shí)現(xiàn)系統(tǒng)軟件的調(diào)試和升級(jí)。BF531是ADI公司生產(chǎn)的一款高性能DSP。ADI公司在其軟件VDSP下提供了通用的在系統(tǒng)編程工具“Flash Programmer”,但是該工具需要使用JTAG接口,并且需要專(zhuān)用仿真器。另外一種方法是采用RS232作為通信接口,通過(guò)一段引導(dǎo)程序來(lái)進(jìn)行Flash的在系統(tǒng)編程,缺點(diǎn)是速度很慢。由于目前大多數(shù)電子儀器都已經(jīng)具有網(wǎng)絡(luò)接口,本文設(shè)計(jì)了一種通過(guò)網(wǎng)絡(luò)接口進(jìn)行Flash在系統(tǒng)編程的方案。采用的網(wǎng)絡(luò)接口芯片為常見(jiàn)的DM9000a,由于網(wǎng)絡(luò)通信中常見(jiàn)的TCP/IP協(xié)議棧過(guò)于龐大,本文中未使用協(xié)議棧,而是設(shè)計(jì)了一種簡(jiǎn)單的實(shí)現(xiàn)方法:直接構(gòu)建含特殊標(biāo)記頭的UDP廣播包來(lái)代替。

        一、BF531的Flash啟動(dòng)加載過(guò)程

        LDR文件是最終燒寫(xiě)到FLASH上面的程序文件,可以有多種格式。這里,我們生成的LDR文件是二進(jìn)制格式,LDR文件分為多個(gè)塊,每個(gè)塊都分為一個(gè)“BLOCK”和一個(gè)10字節(jié)的“HEAD”。在“HEAD”中,頭四個(gè)字節(jié)表示塊應(yīng)加載在BF531地址空間的地址,后四個(gè)字節(jié)表示“BLOCK”的大小,最后兩個(gè)字節(jié)表示塊的屬性。

        BF531芯片本身已經(jīng)提供了4種啟動(dòng)代碼加載方式,通過(guò)啟動(dòng)模式引腳BMODE來(lái)選擇,本設(shè)計(jì)中將該引腳設(shè)置為最常見(jiàn)的“01”模式,即“從8/16位的FLASH/PROM啟動(dòng)”模式。

        BF531內(nèi)部有一個(gè)BOOTROM區(qū),用以存放“引導(dǎo)核”, BF531啟動(dòng)的時(shí)候會(huì)先運(yùn)行該引導(dǎo)核,自動(dòng)將從Flash起始地址0x2000000開(kāi)始的LDR文件分塊按照用戶(hù)的要求分別加載到片內(nèi)RAM和SDRAM中。加載完畢后,引導(dǎo)核會(huì)修改

        程序指針PC,使之為片內(nèi)RAM的啟動(dòng)地址0xFFA08000,啟動(dòng)用戶(hù)自己的應(yīng)用程序。

        二、總體設(shè)計(jì)

        需要設(shè)計(jì)一個(gè)Bootloader程序和一個(gè)與之配合的上位機(jī)程序,并將Bootloader燒在地址0x20000000處。DSP啟動(dòng)后,“引導(dǎo)核”會(huì)自動(dòng)啟動(dòng)該程序,Bootloader程序延時(shí)判斷上位機(jī)是否發(fā)出了連接命令。如果有,進(jìn)入更新固件模式,可以進(jìn)行Flash的燒寫(xiě);否則,則進(jìn)入正常啟動(dòng)模式,用以加載并執(zhí)行用戶(hù)程序。

        (一)Bootloader與用戶(hù)程序

        根據(jù)上面所述,啟動(dòng)的順序是:“引導(dǎo)核”自動(dòng)啟動(dòng)Bootloader,運(yùn)行完成后再加載運(yùn)行用戶(hù)程序。所以Bootloader程序應(yīng)該獨(dú)立于用戶(hù)程序,因?yàn)锽ootloader一般不需要更新,而且,在系統(tǒng)編程出現(xiàn)意外的時(shí)候,不會(huì)導(dǎo)致Bootloader被破壞。由于Bootloader需要在啟動(dòng)的時(shí)候就運(yùn)行,所以應(yīng)該事先通過(guò)JTAG使用仿真器將其燒寫(xiě)到地址0x20000000處。而對(duì)于常用的Nor Flash,編程的時(shí)候會(huì)先把相應(yīng)的整個(gè)扇區(qū)擦除,所以為了方便編程,應(yīng)該使用戶(hù)程序的LDR文件的起始燒寫(xiě)地址固定,并且為一個(gè)扇區(qū)的起始地址,本設(shè)計(jì)中固定為0x20004000。

        (二)網(wǎng)絡(luò)通信協(xié)議設(shè)計(jì)

        嵌入式儀器一般資源都比較少,所以Bootloader體積應(yīng)該設(shè)計(jì)的盡量的小。最常用的網(wǎng)絡(luò)通信協(xié)議為T(mén)CP/IP協(xié)議棧,雖然功能強(qiáng)大,但是體積過(guò)于龐大??紤]Bootloader只需要網(wǎng)絡(luò)接口完成最簡(jiǎn)單的通訊功能,而且通信量很小,本文設(shè)計(jì)了一種簡(jiǎn)單的方法:直接構(gòu)建含特殊標(biāo)記頭的UDP廣播包。

        詳細(xì)的實(shí)現(xiàn)方法:上位機(jī)端發(fā)送數(shù)據(jù)的時(shí)候,在普通的UDP包的“payload”區(qū)加上一個(gè)自定義字符串的“標(biāo)記頭”,并定義為廣播包,發(fā)送。Bootloader端接受時(shí)采用“雜散模式”接受,直接分析網(wǎng)絡(luò)芯片DM9000A接受到的數(shù)據(jù),如果發(fā)現(xiàn)是UDP包并且具有自定義字符串的“標(biāo)記頭”,則接受,否則,拋棄。相反,Bootloader端發(fā)送數(shù)據(jù)的時(shí)候,按照UDP包標(biāo)準(zhǔn)格式直接手動(dòng)填充一個(gè)完整的UDP廣播包,并加上“標(biāo)記頭”,上位機(jī)接受的時(shí)候,按正常接收方式,即可根據(jù)“標(biāo)記頭”判斷是否是Bootloader傳出來(lái)的包。

        三、Bootloader設(shè)計(jì)

        如圖1所示,Bootloader功能上可以分為4個(gè)模塊,主控制模塊,數(shù)據(jù)通信訊模塊,F(xiàn)lash操作模塊,用戶(hù)程序加載啟動(dòng)模塊。Bootloader運(yùn)行的時(shí)候,先向上位機(jī)發(fā)出握手請(qǐng)求,等待1秒,如果有握手回應(yīng)信號(hào)則證明有上位機(jī)相連,Bootloader進(jìn)入命令等待狀態(tài),如果沒(méi)有,則直接進(jìn)入用戶(hù)程序加載啟動(dòng)模塊。當(dāng)一個(gè)完整的上位機(jī)命令被接收到后,Bootloader解析命令,并執(zhí)行相應(yīng)的功能。執(zhí)行完相應(yīng)的功能后會(huì)再發(fā)出握手請(qǐng)求(除非命令為退出命令),等待上位機(jī)握手,周而復(fù)始。

        (一)主控制模塊

        實(shí)現(xiàn)功能:實(shí)現(xiàn)Bootloader與上位機(jī)的握手,解析并執(zhí)行上位機(jī)發(fā)出的命令,并總體控制各個(gè)模塊。

        (二)數(shù)據(jù)通信模塊

        實(shí)現(xiàn)功能:控制網(wǎng)絡(luò)控制芯片DM9000A進(jìn)行數(shù)據(jù)輸入和輸出。主要需要實(shí)現(xiàn)數(shù)據(jù)接收功能,數(shù)據(jù)發(fā)送功能,DM9000A芯片的初始化和復(fù)位功能。

        本設(shè)計(jì)中采用了上文中已經(jīng)敘述的特殊的網(wǎng)絡(luò)通信方式。設(shè)計(jì)數(shù)據(jù)發(fā)送函數(shù)時(shí),先定義一個(gè)UDP的標(biāo)準(zhǔn)廣播包的模版,在UDP包的“payload”區(qū)開(kāi)始的地方添加好自定義的“標(biāo)記頭”,發(fā)送的時(shí)候直接在該模版的“payload”區(qū)后上加入準(zhǔn)備傳送的數(shù)據(jù),通知DM9000A發(fā)送即可,為了避免計(jì)算校驗(yàn)位造成速度減慢,本設(shè)計(jì)中將UDP頭的校驗(yàn)位設(shè)置為0,即不校驗(yàn)。設(shè)計(jì)數(shù)據(jù)接收函數(shù)時(shí),只需要先讀取“payload”的頭幾個(gè)字節(jié),判斷是否為定義的“標(biāo)記頭”,如果是,則去掉該“標(biāo)記頭”和UDP包的頭,獲得真正需要的數(shù)據(jù),如果不是,則拋棄。

        (三)Flash操作模塊

        實(shí)現(xiàn)功能:實(shí)現(xiàn)一些常用的操作Flash功能接口函數(shù),供主控制模塊使用。主要需要實(shí)現(xiàn)的功能函數(shù)有:Flash寫(xiě)函數(shù),F(xiàn)lash讀函數(shù),F(xiàn)lash塊擦除函數(shù),F(xiàn)lash解鎖函數(shù),F(xiàn)lash校驗(yàn)函數(shù)。

        普通的nor Flash編程前需要將相應(yīng)的扇區(qū)解鎖并擦除,所以如果該扇區(qū)有別的數(shù)據(jù),會(huì)被一并擦除。為了能自由地編程任意地址的數(shù)據(jù),本設(shè)計(jì)中特別定義了一個(gè)1個(gè)塊大小的緩沖區(qū),暫存原Flash塊里面的數(shù)據(jù),編程的時(shí)候?qū)⒏聰?shù)據(jù)和原數(shù)據(jù)進(jìn)行合并再后在一起編程進(jìn)入Flash,解決了該問(wèn)題。

        (四)用戶(hù)程序加載啟動(dòng)模塊

        實(shí)現(xiàn)功能:完成類(lèi)似BOOTROM區(qū)“引導(dǎo)核”的工作,即加載起始地址為0x20004000的用戶(hù)程序LDR文件到片內(nèi)RAM或SDRAM,然后清空所有相關(guān)堆棧和寄存器,最后修改PC指針為0xFFA08000,開(kāi)始執(zhí)行用戶(hù)程序,所以該程序應(yīng)該使用匯編編寫(xiě)。ADI在VDSP下提供“引導(dǎo)核”的示例程序,可以參考該程序設(shè)計(jì)本模塊。需要注意的是本模塊絕對(duì)不能被加載的用戶(hù)程序覆蓋掉,所以不能把這段程序放到片內(nèi)RAM,而應(yīng)該把這段程序放在SDRAM的最后,保護(hù)起來(lái)。

        四、上位機(jī)設(shè)計(jì)

        本設(shè)計(jì)中上位機(jī)在Windows XP操作系統(tǒng)下采用NI公司的Labwindows/CVI 8.0開(kāi)發(fā)設(shè)計(jì),如圖2所示。需要實(shí)現(xiàn)通過(guò)UDP包與Bootloader的通信和程控面板的顯示。由于CVI8.0自身沒(méi)有帶UDP相關(guān)驅(qū)動(dòng),需要加入Windows的API庫(kù)wsock32.lib進(jìn)行開(kāi)發(fā)。調(diào)用該庫(kù)進(jìn)行SOCKET編程,設(shè)計(jì)好UDP的讀、寫(xiě)、打開(kāi)、關(guān)閉函數(shù)。在設(shè)計(jì)發(fā)送/接收函數(shù)的時(shí)候應(yīng)該加上或去掉定義的“標(biāo)記頭”。

        五、實(shí)現(xiàn)結(jié)果

        本設(shè)計(jì)已經(jīng)在使用DSP芯片BF531和網(wǎng)絡(luò)控制芯片DM9000A的目標(biāo)板上成功實(shí)現(xiàn)。完整的實(shí)現(xiàn)步驟如下:先將Bootloader生成LDR文件,再將其通過(guò)仿真器燒寫(xiě)到0x20000000,使用交叉雙絞線將目標(biāo)板與電腦相連接,在電腦上打開(kāi)上位機(jī),給目標(biāo)板上電,此時(shí)上位機(jī)與目標(biāo)板進(jìn)行握手,如果成功,面板會(huì)顯示“已經(jīng)成功連接目標(biāo)板”,選擇需要燒寫(xiě)的用戶(hù)程序的LDR文件和燒寫(xiě)地址,點(diǎn)擊開(kāi)始燒寫(xiě)即可。

        六、結(jié)語(yǔ)

        本文提出了一種通過(guò)特殊的UDP廣播包進(jìn)行Flash的在系統(tǒng)編程的方法,并成功實(shí)現(xiàn)。該方法拋棄了TCP/IP協(xié)議棧,因而大大的減小了自身的體積,而且采用網(wǎng)絡(luò)接口,使系統(tǒng)編程的速度得到了極大的提升。很好地解決了目標(biāo)系統(tǒng)的系統(tǒng)程序升級(jí)和調(diào)試的問(wèn)題。

        參考文獻(xiàn)

        [1]Analog Devices,Inc.ADSP-BF533 Blackfin Processor Hardware Reference,2007.

        [2]Analog Devices,Inc.VisualDSP++4.5 Loader and Utilities Manual,2006.

        [3]Analog Devices,Inc.ADSP-BF533 Blackfin Booting Process,2006.

        [4]Lvzhiyong.Auto-load and auto-update the DSOs software,2007.

        作者簡(jiǎn)介:陳洪鋼(1981-),男,四川南充人,電子科技大學(xué)自動(dòng)化工程學(xué)院碩士研究生,研究方向:測(cè)控技術(shù)與儀器;黃華偉(1978-),男,四川成都人,電子科技大學(xué)自動(dòng)化工程學(xué)院碩士研究生,研究方向:通用測(cè)試技術(shù)與儀器設(shè)計(jì)。

        猜你喜歡
        網(wǎng)絡(luò)接口
        變電站網(wǎng)絡(luò)接口物理防護(hù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        雙冗余網(wǎng)絡(luò)接口自動(dòng)切換測(cè)試模塊的設(shè)計(jì)與實(shí)現(xiàn)
        淺析CTC與GSM-R系統(tǒng)網(wǎng)絡(luò)接口及路由配置改進(jìn)措施
        網(wǎng)絡(luò)設(shè)置管理
        京滬高鐵GSM-R網(wǎng)絡(luò)接口監(jiān)測(cè)網(wǎng)關(guān)子系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        淺析接入網(wǎng)監(jiān)控系統(tǒng)
        亚洲在线视频一区二区| 国产人与禽zoz0性伦| 福利体验试看120秒| 荡女精品导航| 亚洲国产成人aⅴ毛片大全| 国产精品自拍午夜伦理福利| 欧美激情肉欲高潮视频| 久久人人爽天天玩人人妻精品| 日韩精品网| 精品亚洲av一区二区| 国产乱精品女同自线免费| 亚洲精品久久久www小说| 欧美成人形色生活片| 亚色中文字幕| 美女和男人一起插插插| 精品激情成人影院在线播放| 免费无码av一区二区三区| 国产精品久久久久久52avav| 四虎影视亚洲精品| 亚洲色图视频在线观看,| 久久久亚洲熟妇熟女av| 首页 综合国产 亚洲 丝袜| 国产又色又爽又刺激视频| 亚洲一区二区一区二区免费视频| 日本视频二区在线观看| a级毛片100部免费看| 日韩精品久久久一区| 国产黑色丝袜在线观看网站91| 亚洲乱码中文字幕在线| 亚洲成av人影院| 国产肉体ⅹxxx137大胆| 亚洲a∨好看av高清在线观看 | 亚洲Va中文字幕久久无码一区| 综合中文字幕亚洲一区二区三区| 所有视频在线观看免费| 欧美黑吊大战白妞| 欧美中文字幕在线看| 久久精见国产亚洲av高清热| 视频一区视频二区制服丝袜| 久久男人av资源网站无码| 亚洲AV综合A∨一区二区|