国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

51單片機與DSP主從機系統(tǒng)及其HPI程序加載

2013-08-26 02:46代傳波朱國華王益元
艦船科學技術 2013年9期
關鍵詞:機系統(tǒng)主從寄存器

代傳波,廖 武,羅 鵬,朱國華,王益元

(1.武漢第二船舶設計研究所,湖北 武漢 430064;2.清華大學工程物理系,北京 100084)

0 引言

在我國傳統(tǒng)船用自動化儀表設計領域中51系列單片機被廣泛應用,設計出了很多優(yōu)秀的產品[1]。但隨著技術迅速發(fā)展,儀表系統(tǒng)需要處理的數(shù)據(jù)量越來越大,傳統(tǒng)8位單片機難以勝任,對它們進行數(shù)字化升級,成了當務之急。引入新型的DSP(數(shù)字信號處理器)作為從機進行數(shù)據(jù)處理,保留傳統(tǒng)MCU(單片機)作為主機進行邏輯控制是一種很好的解決方案。

TI公司的 DSP芯片 TMS320VC5402(下文以DSP代稱)是目前國內最流行的數(shù)字信號處理芯片之一,WINBOND公司的51系列單片機 W77E58(下文以MCU代稱)也是國內常用的微控制器之一,本文以它們?yōu)閷嵗齺韺ι鲜鲋鲝臋C結構設計方式進行介紹。文中采用的DSP程序編譯軟件為CCS2.0,MCU程序編譯軟件為Keil uVision3。

由于C5402芯片內沒有Flash和EPROM等可編程程序存儲器,在實際設計中DSP的程序只能保存在外部存儲介質中。DSP復位后必須先把程序代碼從外部存儲介質搬運到內部高速RAM之后才能運行,這個代碼搬運過程叫做Bootload(加載或引導)[2]。DSP程序加載方式有多種,本方案選擇HPI加載方式,原因如下:

1)HPI接口是主從機結構必備接口。由于系統(tǒng)采用主從機結構方式,無論選擇何種加載方式,其HPI通信模塊的軟、硬件設計都必不可少。

2)HPI加載方式可精簡外部設備。W77E58內置32K字節(jié)Flash程序存儲器,其空間足夠容納DSP和MCU程序內容。將DSP數(shù)據(jù)處理程序存放其中,可避免DSP周邊引入擴展Flash或EPROM等器件,有利于降低成本、提高系統(tǒng)可靠性。

1 主從機結構的HPI口硬件連接及其軟件接口

MCU與DSP主從機系統(tǒng)硬件連接方式如圖1所示。

圖1 MCU與DSP主從機HPI口硬件連接Fig.1 Hardware conection of HPI port between DSP slave and MCU master

在這種結構下,MCU作為主機可以通過HPI接口訪問DSP片上RAM所有地址空間,通過HPI口讀寫可以完成大批量數(shù)據(jù)交換。主從機通信應答采用相互中斷方式實現(xiàn):DSP通過寫HPIC寄存器使得/HINT引腳置低,該信號接入MCU的/INT0引腳中斷通知MCU;MCU也可以通過寫HPIC寄存器來使得DSP進入HPI中斷以控制DSP。

MCU地址和DSP HPI相關寄存器對應關系如表1所示。

表1 MCU地址和DSP HPI相關寄存器對應關系列表Tab.1 List of MCU address and DSP HPI registers maping

在MCU程序中編寫讀寫函數(shù),以通過HPI進行DSP和MCU通信[3],如表2所示。

表2 MCU與DSP HPI通信讀寫函數(shù)列表Tab.2 List of HPI read/write fuctions between MCU and DSP

2 DSP HPI程序加載流程

按圖1所示硬件連接,DSP復位后MP/MC引腳采樣為“0”表示DSP設置為微計算機模式,DSP片內固化的bootloader程序開始執(zhí)行,其流程如圖2所示[4]。

圖2 DSP bootloader程序流程 (HPI部分)Fig.2 Flowt chart of boot loader(part of HPI)

DSP復位時/HINT引腳發(fā)出的下降沿脈沖接入/INT2引腳,/INT2中斷被接收,使得bootloader識別出 DSP的加載方式為 HPI程序加載。其后bootloader進入循環(huán),DSP不斷查詢其內存0x007f地址內容 (在此期間MCU通過HPI把DSP程序代碼搬入DSP內存,代碼搬運完畢之后MCU改寫DSP內存0x007f地址內容)。當bootloader發(fā)現(xiàn)0x007f地址內容不為0,則把此內容作為DSP程序運行的入口地址,跳轉到該入口地址開始運行DSP程序。

3 DSP HPI程序加載代碼的獲取

在MCU與DSP構成的主從機系統(tǒng)HPI加載過程中,最關鍵的操作為獲取DSP HPI程序加載代碼,下面用一個簡單例子詳細介紹HPI加載方式代碼的獲取步驟。

3.1 DSP程序編寫及COFF格式文件生成

在CCS2.0中用C語言編寫一段簡單的DSP程序,該程序的功能是在DSP的XF引腳上產生一個固定頻率的脈沖信號,其源程序sample.c內容如下:

3.2 從COFF文件中提取HEX數(shù)據(jù)文件

COFF文件 (即*.out文件)不是存儲器映像文件,不能直接載入DSP內存。從外部加載DSP程序時,需利用TI公司提供的工具coff_both.exe從COFF文件提取HEX文件 (即*.out.c文件)以用于加載。HEX文件中以數(shù)據(jù)形式列出了COFF文件中各section(段)在DSP內存中的“段目的地址”、“段長度”和“段代碼”等信息[5]。

提取 HEX文件的具體方法為,將 coff_both.exe與sample.out文件放于同一目錄,在DOS模式下輸入如下命令:

3.3 將HEX數(shù)據(jù)文件轉化為MCU中的代碼數(shù)組

根據(jù)*.out.c文件列出的section信息,把其“段代碼”定義成長度為“段長度”的uint型數(shù)組,其“段目的地址”則是MCU準備將該數(shù)組通過HPI寫到DSP內存中的目的地址 (見表2)。

按照上述方法把*.out.c文件中的每個section均定義為1個數(shù)組,并保存在MCU程序源文件中等待HPI寫入加載。修改后的HEX文件 sample_mcu.out.c內容如下:

4 單片機HPI程序加載流程

按圖1所示硬件連接。DSP復位時/HINT發(fā)出下降沿脈沖接入MCU的/INT0引腳,/INT0中斷被接收。MCU在中斷處理程序中對DSP進行HPI程序加載,其流程如圖3所示。

MCU首先通過寫DSP控制寄存器初始化DSP的HPI口,然后清“0”DSP整個片上內存,接著把提取到的DSP程序各段代碼數(shù)組通過HPI寫操作搬運到DSP內存對應位置,最后在DSP內存0x007f寫入DSP程序入口地址,加載過程完畢。

在MCU程序中用于HPI程序加載的C語言函數(shù)源代碼如下:

圖3 MCU HPI程序加載流程Fig.3 Flow chart of MCU HPI bootload

5 結語

使用51單片機和DSP組成的主從機系統(tǒng)及其HPI程序加載方式的解決方案,既實現(xiàn)了傳統(tǒng)儀表的數(shù)字化升級又充分利用了原有設計資源,其硬件結構精簡、軟件設計靈活。基于本主從機系統(tǒng)設計已在筆者研制的船用蒸汽發(fā)生器泄漏率監(jiān)測儀(N16監(jiān)測儀)中得到應用,經過3年的工程應用證明該系統(tǒng)工作穩(wěn)定、運行可靠。

在第3節(jié)“DSP HPI程序加載代碼的獲取”中提到的操作較繁雜,需要在DOS界面調用多個軟件工具完成,實際工作中應考慮簡化。對此,在coff_both.exe的基礎上[6]編制了windows環(huán)境運行的代碼提取程序 BootLoaderCode.exe。一方面,它擴展了section“段長度”限制,避免了代碼提取過程中section被拆分的現(xiàn)象 (擴展后的段長為65536字節(jié),DSP程序段長度基本不會超過該值)。另一方面,通過它提取出的*.out.c文件被直接編排為MCU中的代碼數(shù)組格式,避免了手動拷貝代碼操作。

使用BootLoaderCode.exe提取代碼,將3.2和3.3節(jié)兩步合并為一步完成,可簡化繁瑣的人工操作,避免錯誤引入,能顯著提高工作效率。

[1]李朝青.單片機原理及接口技術(簡明修訂版)[M].北京:北京航空航天大學出版社,2002.LI Cao-qing.Theory and interface technology of single-chip microcomputer(concise emend version)[M].Beijing:Beihang University Press,2002.

[2]張雄偉.曹鐵勇DSP芯片的原理開發(fā)與應用(第二版)[M].北京:電子工業(yè)出版社,2000.ZHANG Xiong-wei,CAO Tie-yong.The designing principle and application of DSP(V2)[M].Beijing:Electronic Inderstry Press,2000.

[3]馬忠梅,等.單片機的c語言應用程序設計[M].北京:北京航空航天大學出版社,2000.MA Zhong-mei,et al.Design of C language application in single-chip microcomputer[M].Beijing:Beihang University Press,2000.

[4]PEREZ R D.TMS320VC5402及 TMS320VC5402程序加載[DB/CD].TI公司應用報告 SPRA618A,2002.PEREZR D.TMS320VC5402 and TMS320VC5402 Bootloader [DB/CD].TI Application Report SPRA618A,2002.

[5]TATER S.TMS320VC5402在 HPI模式下的程序加載[DB/CD].TI公司應用報告 SPRA382,2002.TATER S.Bootloading the TMS320VC5402 in HPI Mode[DB/CD].TI Application report SPRA382,2002.

[6]CHHABRA A,IYER R.從COFF文件中提取對等的Hex數(shù)值[DB/CD].TI公司應用報告 SPRA573,1999.CHHABRA A,IYER R.Extracting equivalent hex values from a COFF file[DB/CD].TI Application Report SPRA573,1999.

猜你喜歡
機系統(tǒng)主從寄存器
水電廠計算機監(jiān)控系統(tǒng)上位機改造新老系統(tǒng)網絡割接的實踐
探析電梯門機系統(tǒng)機電性能試驗
Antarctica's pretty pink snow
Lite寄存器模型的設計與實現(xiàn)
二進制翻譯中動靜結合的寄存器分配優(yōu)化方法
基于ACS880變頻器XD2D主從功能的采煤機牽引調速系統(tǒng)設計
車機≈手機 ?
移位寄存器及算術運算應用
基于飛行試驗數(shù)據(jù)的仿真模型主從一體化檢驗
博世完成對采埃孚轉向機系統(tǒng)的收購