摘 要:現(xiàn)今民航使用的VHF比選器及其它無(wú)線和有線的音頻處理設(shè)備都是將模擬音頻進(jìn)行數(shù)字化信號(hào)處理,音頻數(shù)字化處理包含了大量復(fù)雜的數(shù)學(xué)運(yùn)算,但單片機(jī)的處理速度和運(yùn)算能力無(wú)法滿足需求器,所以選用數(shù)字信號(hào)處理芯片(Digital Signal Processor)DSP,因程序下載所用的方法是將編寫(xiě)完成后的程序用設(shè)備寫(xiě)入到DSP可用的存儲(chǔ)器,在將存儲(chǔ)器焊接到板卡上,這樣產(chǎn)品的升級(jí)和二次開(kāi)發(fā)很不方便。本文結(jié)合PC上位機(jī)、C8051FXXX系列單片機(jī),來(lái)解決相應(yīng)的問(wèn)題,通過(guò)PC上位機(jī)與C8051FXXX系列單片機(jī)配合實(shí)現(xiàn)DSP在線程序下載及檢測(cè)。
關(guān)鍵詞:C8051FXXX系列單片 TMS320C672X系列DSP DSP在線下載程序
中圖分類號(hào):TN914文獻(xiàn)標(biāo)志碼:A文章編號(hào):1674-098X(2011)10(c)-0052-02
現(xiàn)今數(shù)字信號(hào)處理器DSP(Digital Signal Processor)DSP,因其優(yōu)異的擴(kuò)展性,高性能的運(yùn)算能力可達(dá)到300M,可支持32位定點(diǎn)、32位單精度浮點(diǎn)、64位雙精度浮點(diǎn)運(yùn)算。高速并行I/O接口和對(duì)16位或32位非混合模式地址和數(shù)據(jù)處理能力,而在很多領(lǐng)域中被應(yīng)用,尤其在民航系統(tǒng)使中使用最為廣泛如:比選器、內(nèi)話、集團(tuán)電話、視頻監(jiān)控等設(shè)備。
然而DSP雖然在民航各種設(shè)備中得到應(yīng)用,但DSP也有不足的地方如:程序的下載方面對(duì)用戶是很不方便的,目前程序下載所用的方法是將編寫(xiě)完成后的程序用設(shè)備燒入到DSP可用的存儲(chǔ)器,然后在將存儲(chǔ)器焊接到板卡上。而此時(shí)又有新的功能添加或有錯(cuò)誤修改就會(huì)很麻煩,需要將程序存儲(chǔ)器重新燒寫(xiě)和焊接,而原有完成的板卡可能不可再用,這樣會(huì)加大成本和爛廢,而且只是軟件不同時(shí)也需要將硬件上的芯片進(jìn)行根換。DSP現(xiàn)在的程序下載方法不支持在線和遠(yuǎn)程程序更新升級(jí)的,而且程序的保密性不高。
針對(duì)DSP的不足和用戶需要,提出了改變?cè)谐绦蛳螺d方式的方案及具體實(shí)現(xiàn)方法。該方案改善了原有的不足,而且有效的降低成本和爛廢,并為DSP擴(kuò)展出在線程序下載能力,還為DSP增加了更為豐富的外圍接口。現(xiàn)已在實(shí)際使用中得到了很好的應(yīng)用。
1 引言
在民航的高速發(fā)展和不斷提出的新需求,新的接口結(jié)構(gòu)勢(shì)在必行。新的接口主要是由單片機(jī)為核心來(lái)實(shí)現(xiàn)的,單片機(jī)也是高速的單片機(jī)最高可達(dá)到100M其本身也具備很豐富的接口,單片機(jī)的高速為DSP程序下載提供了保障,而它的豐富的接口也可以為DSP提供服務(wù),這樣DSP就擁有更為豐富的接口,功能擴(kuò)展也得到了提高。DSP程序下載接口一般分為并口和串口,并口:讀取方便速度較快,但擴(kuò)展性不強(qiáng)也不靈活。因此本方案采用串口(SPI)。
串口:速度最高可達(dá)40M,其靈活性很高。除下載程序外在平常運(yùn)行時(shí)也可以對(duì)其進(jìn)行監(jiān)控和操作,還可以加強(qiáng)DSP的工作分配能力。
單片機(jī)在新接口結(jié)構(gòu)中負(fù)責(zé)由UART接口、I2C接口、USB接口輸入的DSP程序存儲(chǔ)到本芯片內(nèi)或外接的存儲(chǔ)器,并將程序通過(guò)SPI接口下載到TMS320C672X系列DSP中使其啟動(dòng)運(yùn)行,還負(fù)責(zé)監(jiān)控DSP運(yùn)行情況,如果DSP運(yùn)行過(guò)程中出現(xiàn)停止運(yùn)行或運(yùn)行不正確等情況,單片機(jī)可通過(guò)復(fù)位控制將DSP復(fù)位重啟,而且單片機(jī)還可以在TMS320C672X系列DSP正常運(yùn)行過(guò)程中,作為T(mén)MS320C672X系列DSP外部接口和存儲(chǔ)器。
因?yàn)榫邆湟陨系哪芰Γ涂梢詫?shí)現(xiàn)對(duì)TMS320C672X系列DSP在線更新程序和監(jiān)控運(yùn)行情況,還可以改變TMS320C672X系列DSP運(yùn)行時(shí)所需的外部參數(shù)。
2 硬件實(shí)現(xiàn)
2.1 單片機(jī)
單片機(jī)采用的是C8051FXXX系列單片機(jī),后面有關(guān)單片機(jī)的描述是以C8051F340來(lái)說(shuō)明的。
C8051F340單片機(jī)具有高速8051微控制器內(nèi)核,流水線指令結(jié)構(gòu);70%的指令的執(zhí)行時(shí)間為一個(gè)或兩個(gè)系統(tǒng)時(shí)鐘周期。數(shù)字外設(shè)接口40/25個(gè)端口I/O、硬件增強(qiáng)型SPI、I2C和1或2個(gè)增強(qiáng)型UART串口、USB接口,上述接口中增強(qiáng)型SPI接口用于與TMS320C672X系列DSP連接通訊,兩個(gè)UART接口選擇任意一個(gè)通過(guò)串口模塊與上位機(jī)連接用于下載或讀取程序及數(shù)據(jù),其他接口根據(jù)需要連接外圍通訊設(shè)備。
SPI接口提供訪問(wèn)一個(gè)全雙工同步串行總線的能力。可以作為主器件或從器件工作,可以使用3線或4線方式,并可在同一總線上支持多個(gè)主器件和從器件。結(jié)構(gòu)中SPI使用的是4線從方式、SCK周期的第二個(gè)邊沿采樣數(shù)據(jù)、SCK在空閑狀態(tài)時(shí)處于高電平。SPI在使用時(shí)還需要與I/O端口中P3.1、P3.2配合使用,P3.1和P3.2連接MS320C672X系列DSP上作為讀/寫(xiě)線(低電平有效)。
UART接口是一個(gè)異步、全雙工串口,具有增強(qiáng)的波特率發(fā)生器電路,有多個(gè)時(shí)鐘源可用于產(chǎn)生標(biāo)準(zhǔn)波特率。接收數(shù)據(jù)緩沖機(jī)制允許UART在軟件尚未讀取前一個(gè)數(shù)據(jù)字節(jié)的情況下開(kāi)始接收第二個(gè)輸入數(shù)據(jù)字節(jié)。
I/O端口。每個(gè)端口引腳都可以被定義為通用I/O或模擬輸入。可根據(jù)設(shè)計(jì)者需求進(jìn)行分配控制。注意:本文中I/O端口中P3.0用于連接TMS320C672X系列DSP的復(fù)位線,P3.1和P3.2連接MS320C672X系列DSP上作為讀/寫(xiě)線需設(shè)置為通用I/O。其它I/O口如接存儲(chǔ)芯片,根據(jù)存儲(chǔ)芯片需求進(jìn)行配置。
I2C接口有兩種可能的數(shù)據(jù)傳輸類型:從主發(fā)送器到所尋址的從接收器(寫(xiě))和從被尋址的從發(fā)送器到主接收器(讀)。這兩種數(shù)據(jù)傳輸都由主器件啟動(dòng),主器件還在SCL上提供串行時(shí)鐘。接口可以工作在主或從方式,總線上可以有多個(gè)主器件。如果兩個(gè)或多個(gè)主器件同時(shí)啟動(dòng)數(shù)據(jù)傳輸,仲裁機(jī)制將保證有一個(gè)主器件會(huì)贏得總線。
USB接口C8051F340器件集成了一個(gè)完整的全速(12Mbps)/低速(1.5Mbps)USB功能控制器,用于實(shí)現(xiàn)USB外部設(shè)備(C8051F340不能被用作USB主設(shè)備)。USB功能控制器(USB0)由串行接口引擎(SIE)、USB收發(fā)器(包括匹配電阻和可配置上拉電阻)、1KB FIFO存儲(chǔ)器和時(shí)鐘恢復(fù)電路(可以不用晶體)組成,不需要外部元件。USB功能控制器和收發(fā)器符合通用串行總線規(guī)范2.0版。支持8個(gè)端點(diǎn)。
2.2 電源模塊
C8051F340單片機(jī)和串口模塊需要3.3V供電,本文介紹的結(jié)構(gòu)所選的是FM25V10存儲(chǔ)芯片需要3.3V供電,本文中DSP需要3.3V和1.2V。根據(jù)供電需要使用的是AS1117-3.3V穩(wěn)壓芯片、AS1117-1.2V穩(wěn)壓芯片。
AS1117-3.3V穩(wěn)壓芯片和AS1117-1.2V穩(wěn)壓芯片需要5V供電。
2.3 存儲(chǔ)芯片
本文介紹的結(jié)構(gòu)所選的是FM25V10-1M芯片(FRAM),此芯片存儲(chǔ)空間為1Mbit、讀寫(xiě)接口為SPI接口(支持2種模式03)、接口讀寫(xiě)數(shù)率最大40MHz。本文介紹的結(jié)構(gòu)支持多片擴(kuò)容,接口是由單片機(jī)用I/O口虛擬為SPI接口連接存儲(chǔ)芯片連接。
2.4 串口模塊
單片機(jī)的串口模塊用來(lái)與上位機(jī)PC進(jìn)行通信。由于PC機(jī)RS232串口的電平與單片機(jī)UART串口電平定義不一致,在此通過(guò)SP3223芯片進(jìn)行電平轉(zhuǎn)換。
2.5 TMS320C672X系列DSP
本文介紹的結(jié)構(gòu)中以TMS320C6722為例進(jìn)行說(shuō)明。本結(jié)構(gòu)中TMS320C6722芯片用到的有SPI0,復(fù)位(REST)管腳,和兩個(gè)I/O口(由用戶根據(jù)需求定義)結(jié)構(gòu)中用的是ASR0[0]、ASR0[1],用于讀/寫(xiě)設(shè)置(低電平有效)。
結(jié)構(gòu)中TMS320C6722芯片復(fù)位是由單片機(jī)控制,在復(fù)位時(shí)單片機(jī)要通過(guò)SPI0接口來(lái)設(shè)定TMS320C6722芯片的啟動(dòng)模式,結(jié)構(gòu)中設(shè)定的模式為SPI0從模式,見(jiàn):表1。
3 軟件設(shè)計(jì)
3.1 軟件概述
結(jié)構(gòu)系統(tǒng)軟件分4部分組成:UART串口程序、BOOT引導(dǎo)文件下載程序、應(yīng)用文件下載程序和運(yùn)行主程序
3.2 UART串口程序
本程序是上電后,在其它程序運(yùn)行和對(duì)DSP操作前運(yùn)行。
此程序是檢測(cè)相應(yīng)接口有無(wú)連接上位機(jī),并檢測(cè)有無(wú)程序下載等操作和守候操作命令,檢測(cè)有無(wú)上位機(jī)連接的等待時(shí)間為50ms。結(jié)構(gòu)中選用的是單片機(jī)UART0串口作為監(jiān)控和程序下載操作的通訊接口。
本程序具備程序下載、數(shù)據(jù)下載、程序上傳、數(shù)據(jù)上傳、存儲(chǔ)區(qū)分區(qū)、存儲(chǔ)區(qū)格式化,存儲(chǔ)空間的詢問(wèn)等功能。
當(dāng)串口在50ms內(nèi)檢測(cè)到上位機(jī)的連接將進(jìn)入到控制命令守候狀態(tài),此時(shí)一切操作都由上位機(jī)發(fā)起,一旦收到控制命令下位機(jī)依照命令執(zhí)行。
結(jié)束命令:如果未收到此命令將不會(huì)返回主程序。查詢命令:下位機(jī)會(huì)返回存儲(chǔ)空間大小及相關(guān)參數(shù)。分區(qū)命令:下位機(jī)會(huì)將存儲(chǔ)空間依照參數(shù)進(jìn)行劃分。文件下載:下位機(jī)會(huì)將下發(fā)的數(shù)據(jù)存儲(chǔ)到相應(yīng)空間。文件上傳:下位機(jī)會(huì)按照參數(shù)將相應(yīng)存儲(chǔ)空間的數(shù)據(jù)上傳。
數(shù)據(jù)下載:下位機(jī)會(huì)將下發(fā)的數(shù)據(jù)存儲(chǔ)到相應(yīng)空間。數(shù)據(jù)上傳:下位機(jī)會(huì)按照參數(shù)將相應(yīng)
存儲(chǔ)空間的數(shù)據(jù)上傳。格式化:下位機(jī)會(huì)按照參數(shù)將相應(yīng)存儲(chǔ)空間清空。
3.3 BOOT引導(dǎo)文件下載程序
在BOOT下載之前需要硬件將DSP復(fù)位(復(fù)位時(shí)間5ms),在復(fù)位完成后即可開(kāi)始下載BOOT文件。
單片機(jī)向DSP發(fā)送詢問(wèn)命令(0X5853)回應(yīng)(0X5253),發(fā)送連接測(cè)試設(shè)置(0X00000002)回應(yīng)(0X00000002),發(fā)送連接測(cè)試1(0X00000001)回應(yīng)(0X00000001),發(fā)送連接測(cè)試2(0X00000002)回應(yīng)(0X00000002),發(fā)送下載申請(qǐng)(0X5853590B)回應(yīng)(0X5253590B),下載文件:文件下載過(guò)程中沒(méi)有回應(yīng)直到下載結(jié)束,發(fā)送啟動(dòng)申請(qǐng)(0X58535901)回應(yīng)(0X52535901)到此表示下載成功。(注:BOOT下載時(shí)單片機(jī)SPI接口為主,數(shù)率不易過(guò)高建議200K)
3.4 應(yīng)用文件下載程序
應(yīng)用文件下載必須是在BOOT文件下載成功后進(jìn)入,如果BOOT文件下載失敗應(yīng)用文件下載程序?qū)⒉粫?huì)執(zhí)行。
打開(kāi)下載文件:是依照事先定義將頭文件標(biāo)識(shí)讀出并進(jìn)行判斷不符合直接失敗退出,符合向DSP發(fā)送下載申請(qǐng),下載申請(qǐng)只發(fā)3次,如3次后任然無(wú)回應(yīng)直接失敗退出。有回應(yīng)后將下載應(yīng)用文件,在下載過(guò)程中如有錯(cuò)誤回應(yīng)將按照回應(yīng)的錯(cuò)誤地址重新續(xù)發(fā),文件發(fā)完后50ms內(nèi)無(wú)回應(yīng)視為失敗直接失敗退出。頭文件下載成功后,將檢測(cè)文件標(biāo)識(shí)查看是否有下一個(gè)需要下載的文件,如果有將返回到打開(kāi)下載文件再走一遍流程。文件全部下完后,向DSP發(fā)送啟動(dòng)申請(qǐng)并收到啟動(dòng)成功回應(yīng)后,成功退出返回,如果連發(fā)3次之后任然無(wú)回應(yīng)視為失敗直接失敗退出。
3.5 主程序
主程序包括上述的三個(gè)程序,當(dāng)進(jìn)入到主程序運(yùn)行后,程序?qū)?duì)UART接口、I2C接口、USB接口、SPI接口和DSP工作情況掃描。UART接口有數(shù)據(jù)時(shí)根據(jù)自定義的協(xié)議進(jìn)行操作,向DSP寫(xiě)數(shù)據(jù)、讀寫(xiě)存儲(chǔ)器或下載程序,如果是下載程序,在下載完成后必須重啟系統(tǒng)程序。I2C、USB通訊格式不同其它功能相同。SPI接口掃描用于檢測(cè)是否DSP有數(shù)據(jù)要向外發(fā)送或存儲(chǔ),向外發(fā)送的數(shù)據(jù)根據(jù)自定義的協(xié)議由UART接口、I2C接口、USB接口輸出。監(jiān)控DSP的掃描是每50ms檢查一次如果連續(xù)兩次檢測(cè)表示DSP有故障系統(tǒng)程序直接重啟。主程序是循環(huán)掃描。
4 實(shí)驗(yàn)結(jié)果
在實(shí)驗(yàn)板上焊接兩片空白的存儲(chǔ)芯片,上電再無(wú)任何程序下載的情況下單片機(jī)將DSP的工作情況通過(guò)串口向上位機(jī)發(fā)送,上位機(jī)通過(guò)任意一款串口測(cè)試軟件(支持ASCII)本實(shí)驗(yàn)用的是電腦系統(tǒng)自帶的《超級(jí)終端》軟件。通過(guò)軟件可以看到DSP無(wú)法正常工作。此時(shí)將下載程序軟件打開(kāi)詢問(wèn)下位機(jī)存儲(chǔ)空間會(huì)得到256K字節(jié)的存儲(chǔ)空間,軟件對(duì)空間盡心劃分在將劃分的存儲(chǔ)空間格式化,格式化完成后向下位機(jī)下載程序,下載完成后退出軟件此時(shí)下位機(jī)復(fù)位重啟,再用監(jiān)視軟件《超級(jí)終端》察看DSP工作情況,軟件顯示的是DSP按照所下載的程序正常運(yùn)行。
5 結(jié)語(yǔ)
利用這種接口發(fā)式,有效的提高了研發(fā)速度,以應(yīng)對(duì)民航的需求并減低了研發(fā)成本和爛廢。可以在同一研發(fā)母板上進(jìn)行多種研發(fā)和測(cè)試,而且在以完成的設(shè)備上要加入新的功能也不需要更換程序芯片,只是將程序重新下載即可,這樣就對(duì)完成產(chǎn)品的二次開(kāi)發(fā)提供了便利條件。同時(shí)單片機(jī)還可以替DSP分擔(dān)一些工作,這就可以提高DSP的工作性能和監(jiān)控能力。而且也給民航維護(hù)人員帶來(lái)了更為直觀和便利的監(jiān)控環(huán)境,并在此基礎(chǔ)上可以衍生出遠(yuǎn)程維護(hù)和更新的能力。
同時(shí)這種接口方式,也給研發(fā)人員帶來(lái)了便利。研發(fā)人員在研發(fā)過(guò)程中無(wú)需對(duì)存儲(chǔ)芯片反復(fù)更換,而且研發(fā)人員還可以通過(guò)監(jiān)控軟件對(duì)DSP運(yùn)行的程序監(jiān)控和查找問(wèn)題。
參考文獻(xiàn)
[1]Texas Instruments Incorporated. TMS320C672x CPU and Instruction Set Reference Guide,2006.
[2]Texas Instruments Incorporated.Using the TMS320C672x Bootloade Application Reporn,2006.
[3]戴逸民.基于DSP的現(xiàn)代電子系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002.