基于DSP的儀器儀表開(kāi)發(fā)系統(tǒng)研制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
數(shù)字信號(hào)處理(digitalsignalprocessing,DSP)是90年代迅速發(fā)展起來(lái)的新興學(xué)科。其中,TI公司的MS320系列DSP處理器占據(jù)了主導(dǎo)地位。在國(guó)內(nèi),由于DSP在語(yǔ)音、圖像、聲納、雷達(dá)、航天、通信以及生物醫(yī)學(xué)工程等領(lǐng)域具有越來(lái)越廣泛的應(yīng)用,因此,有關(guān)DSP開(kāi)發(fā)系統(tǒng)的研究也逐漸受到重視。盡管DSP的各類(lèi)產(chǎn)品應(yīng)用很廣,但要使它能夠深入、持久地得以發(fā)展,必須要有相應(yīng)優(yōu)秀的DSP開(kāi)發(fā)系統(tǒng)并提供給用戶(hù)一個(gè)靈活、方便的開(kāi)發(fā)工具,以使用戶(hù)在開(kāi)發(fā)系統(tǒng)上可以完成對(duì)目標(biāo)機(jī)的軟件、硬件系統(tǒng)的綜合調(diào)試。DSP開(kāi)發(fā)系統(tǒng)對(duì)于DSP應(yīng)用來(lái)說(shuō),是一項(xiàng)基礎(chǔ)工作,是否有一個(gè)適用且有效的DSP開(kāi)發(fā)系統(tǒng),往往是關(guān)系到DSP應(yīng)用成敗的關(guān)鍵因素之一。
首先,DSP的開(kāi)發(fā)對(duì)開(kāi)發(fā)者的軟、硬件設(shè)計(jì)能力和水平都有很高的要求。要充分發(fā)揮DSP的優(yōu)勢(shì),最好采用匯編語(yǔ)言進(jìn)行軟件開(kāi)發(fā),但這樣就會(huì)使開(kāi)發(fā)周期拉長(zhǎng),開(kāi)發(fā)難度加大,而且DSP的軟件可移植性比較差。由于DSP的指令都和其處理器芯片內(nèi)部結(jié)構(gòu)有關(guān),每一代處理器的結(jié)構(gòu)都有所不同,結(jié)構(gòu)發(fā)生變化后,在其之上的軟件也要發(fā)生變化。如C64的內(nèi)部硬件結(jié)構(gòu)也就不同于C5X,所以C64的一些指令就不同于C5X,曾經(jīng)熟悉C5X的技術(shù)人員不得不從頭開(kāi)始學(xué)起C64的指令,這就給編程人員帶來(lái)了很大的不便,同時(shí)也增加了開(kāi)發(fā)的難度和周期。加上現(xiàn)在DSP芯片更新?lián)Q代很快,技術(shù)人員很難跟上更換的步伐。這就降低了整個(gè)系統(tǒng)的靈活性和軟件的可移植性。更重要的是,在一個(gè)團(tuán)隊(duì)中,往往需要每個(gè)編程人員都必須熟悉這些指令,從而造成了工作效率的降低。其次,在開(kāi)發(fā)儀器儀表的過(guò)程中,對(duì)各種儀器儀表開(kāi)發(fā)中所涉及的共性部分,如界面的編制、顯示數(shù)據(jù)的格式處理、漢字庫(kù)的處理、數(shù)據(jù)庫(kù)的結(jié)構(gòu)、低層DSP軟件的規(guī)范化處理等,都還沒(méi)有比較通用的開(kāi)發(fā)模式。
由于以上幾種缺陷,對(duì)于一家儀器儀表開(kāi)發(fā)公司,在使用DSP的開(kāi)發(fā)過(guò)程中,經(jīng)常的情況就是人守一個(gè)仿真器,每人都要對(duì)全系列的DSP進(jìn)行了解和熟悉,并能夠獨(dú)立編程,使人力、物力資源產(chǎn)生浪費(fèi)。為此,本文設(shè)計(jì)并研制了一種專(zhuān)門(mén)的開(kāi)發(fā)系統(tǒng),以期減少開(kāi)發(fā)人員數(shù)量,提高開(kāi)發(fā)人員的工作效率。
1 系統(tǒng)的整體方案設(shè)計(jì)與工作原理
本系統(tǒng)設(shè)計(jì)的目的是對(duì)現(xiàn)有的開(kāi)發(fā)儀器儀表所需的技術(shù)方案進(jìn)行簡(jiǎn)化,把儀器儀表開(kāi)發(fā)過(guò)程中的液晶屏底圖繪制、數(shù)據(jù)自動(dòng)顯示、上下位機(jī)通訊、數(shù)據(jù)處理,波形圖繪制,數(shù)據(jù)庫(kù)處理等絕大部分工作封裝成面向?qū)ο蟮哪P?把這些開(kāi)發(fā)過(guò)程中必須的元素統(tǒng)一于一個(gè)開(kāi)發(fā)系統(tǒng)之中,以減少開(kāi)發(fā)人員數(shù)量,或?qū)﹂_(kāi)發(fā)人員進(jìn)行合理分工,研究一種可提高開(kāi)發(fā)人員工作效率的、基于DSP芯片的開(kāi)發(fā)系統(tǒng)。
為了實(shí)現(xiàn)上述目的,本設(shè)計(jì)所采用的整體技術(shù)方案是以面向?qū)ο蟮姆椒橹笇?dǎo)思想,以密碼文件包為核心介質(zhì),按開(kāi)發(fā)流程和物理結(jié)構(gòu),由上位機(jī)模擬組態(tài)系統(tǒng)、上下位機(jī)通訊系統(tǒng)、基于DSP的技術(shù)硬件平臺(tái)板以及在該DSP中運(yùn)行的下位機(jī)解析系統(tǒng)組成的三層結(jié)構(gòu)。其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
1.1 上位機(jī)模擬組態(tài)系統(tǒng)
本系統(tǒng)采用開(kāi)發(fā)人員先在個(gè)人PC上進(jìn)行開(kāi)發(fā),然后通過(guò)本系統(tǒng)再在儀器中顯示可能出現(xiàn)的全部情況,如:頁(yè)面,菜單,數(shù)據(jù)項(xiàng),數(shù)據(jù)庫(kù),波形,應(yīng)用漢字庫(kù)等,再通過(guò)系統(tǒng)對(duì)這些“元素”進(jìn)行編譯,打包成密碼包及對(duì)應(yīng)的字庫(kù)文件。并對(duì)所開(kāi)發(fā)的所有項(xiàng)目的密碼包進(jìn)行修改、重排、日常管理,這相當(dāng)于是一套小型的密碼生成器,以及儀器界面管理信息系統(tǒng)。最為重要的是,本組態(tài)系統(tǒng)不需要開(kāi)發(fā)人員編制任何一條程序語(yǔ)句,僅需使用鼠標(biāo)繪制圖形即可。
1.2 上下位機(jī)通訊系統(tǒng)
這是用于上下位機(jī)之間通過(guò)串口通訊的系統(tǒng),該系統(tǒng)是一套上下位機(jī)溝通的橋梁,主要通過(guò)個(gè)人PC的串口和下位機(jī)電路板的同步串口進(jìn)行通訊,目的是把第一層所編譯好的密碼包及對(duì)應(yīng)的字庫(kù)文件傳送給下位機(jī)所對(duì)應(yīng)的不同的存儲(chǔ)區(qū)間。
1.3 基于DSP開(kāi)發(fā)的下位機(jī)解析系統(tǒng)
該部分的主要工作有兩層,一是基于DSP開(kāi)發(fā)的硬件平臺(tái);二是可在DSP中進(jìn)行的下位機(jī)解析系統(tǒng)。其中基于DSP開(kāi)發(fā)技術(shù)的硬件平臺(tái)板是下位機(jī)解析系統(tǒng)所依賴(lài)的硬件系統(tǒng),主要包括DSP高速運(yùn)算處理器、密碼包存儲(chǔ)所用的FLASH卡、以及部分儀器采樣所需要的模擬及數(shù)字電路。
下位機(jī)解析系統(tǒng)相當(dāng)于一個(gè)小型的操作系統(tǒng),它可以根據(jù)第一層所定義的密碼格式,對(duì)密碼包破解以后顯示在液晶屏上,然后在下位機(jī)解析系統(tǒng)的局部地方更改程序,以實(shí)現(xiàn)各種儀器的不同功能。
2 上位機(jī)模擬組態(tài)系統(tǒng)設(shè)計(jì)
這一部分可采用微軟公司的VB6高級(jí)語(yǔ)言編制,然后在開(kāi)發(fā)人員用于開(kāi)發(fā)的個(gè)人PC上使用。
上位機(jī)組態(tài)系統(tǒng)中應(yīng)定義用于封裝的幾種元素對(duì)象。
2.1 頁(yè)面的組成
頁(yè)面是上位機(jī)組態(tài)系統(tǒng)的核心。一個(gè)儀器的業(yè)務(wù)處理是由若干個(gè)乃至幾十個(gè)頁(yè)面按照一定的邏輯關(guān)系自由組合而成的。組成頁(yè)面這個(gè)數(shù)據(jù)群的集體信息包括頁(yè)名稱(chēng)、上一頁(yè)、下一頁(yè)、父頁(yè)、寬度、高度、數(shù)據(jù)基址、基址增量等。
其次是背景頁(yè)。對(duì)于頁(yè)面這個(gè)元素來(lái)說(shuō),最重要的就是背景頁(yè),也就是儀器顯示在人機(jī)界面上的底圖。相對(duì)于以前的處理方法,所采用的技術(shù)方案可以是使用中文Windows系統(tǒng)自帶的畫(huà)圖軟件,也可以是Photoshop等商業(yè)軟件畫(huà)出的儀器各個(gè)界面底圖,然后把底圖保存成BMP格式的單色位圖文件,也就是對(duì)應(yīng)的單色人機(jī)界面。
BMP文件與設(shè)備無(wú)關(guān)。BMP文件分為文件首部和文件體兩部分。文件首部描述文件和圖像的有關(guān)參數(shù)和彩色表,主體是圖像的位圖數(shù)據(jù),BMP文件體部分記錄圖像的位圖數(shù)據(jù)。方式是從圖像的左下角開(kāi)始依次掃描每根掃描線(xiàn),對(duì)于單色,每個(gè)象素用1位表示。系統(tǒng)可依據(jù)TurboC位圖格式對(duì)BMP文件進(jìn)行文件流操作,然后生成一個(gè)同BMP文件同名、dat類(lèi)型的長(zhǎng)度為6+number*(bottom—top+1)的文件。
2.2 數(shù)據(jù)項(xiàng)
儀器的顯示界面的動(dòng)態(tài)變化主要通過(guò)數(shù)據(jù)項(xiàng)的變化來(lái)實(shí)現(xiàn)。該系統(tǒng)內(nèi)的一個(gè)數(shù)據(jù)項(xiàng)對(duì)象應(yīng)包括數(shù)據(jù)名稱(chēng)、數(shù)據(jù)項(xiàng)頁(yè)面、數(shù)據(jù)類(lèi)型(包括字符型,整型,浮點(diǎn)型,16進(jìn)制,選擇,時(shí)間,一次擬和波形,二次擬和波形,方波,正旋波)、數(shù)據(jù)地址、X坐標(biāo)、Y坐標(biāo)、數(shù)據(jù)格式等。
2.3 菜單項(xiàng)的設(shè)計(jì)
儀器儀表的一些主要功能一般都需要通過(guò)上位機(jī)軟件設(shè)置菜單項(xiàng)來(lái)實(shí)現(xiàn),該系統(tǒng)內(nèi)的一個(gè)菜單項(xiàng)對(duì)象包括菜單項(xiàng)名稱(chēng)、菜單項(xiàng)頁(yè)面、菜單光標(biāo)類(lèi)型、X坐標(biāo)、Y坐標(biāo)、寬度、長(zhǎng)度、菜單屬性、子頁(yè)頁(yè)號(hào)、字符串長(zhǎng)度、字符串等。
綜上所述,基于以上的三類(lèi)元素,對(duì)于一臺(tái)全新的儀器來(lái)說(shuō),可以先為該儀器建立一些基本頁(yè)面,然后利用組態(tài)軟件,在該頁(yè)面上添加各種類(lèi)型的數(shù)據(jù)項(xiàng)和菜單項(xiàng)。也就是說(shuō),通過(guò)開(kāi)發(fā)人員將在儀器中可能出現(xiàn)的全部情況,(如頁(yè)面,菜單,數(shù)據(jù)項(xiàng),數(shù)據(jù)庫(kù),波形,應(yīng)用漢字庫(kù)等功能)繪制在頁(yè)面上。
通過(guò)這些特制組態(tài)軟件所具備的編譯功能,可將這些“元素”編譯打包成密碼文件包(COMPILEoDAT),密碼包是一個(gè)二進(jìn)制文件,該密碼文件包的組成順序如下:
頁(yè)面1(本頁(yè)底圖文件+本頁(yè)數(shù)據(jù)項(xiàng)(1一n)+本頁(yè)菜單項(xiàng)(1一n)﹢...﹢頁(yè)面n(本頁(yè)底圖文件+本頁(yè)數(shù)據(jù)項(xiàng)(1-n)+本頁(yè)菜單項(xiàng)(1一n))
3 上下位機(jī)通訊系統(tǒng)
該部分采用普通用于上下位機(jī)之間通過(guò)串口通訊的系統(tǒng)即可。硬件上可通過(guò)個(gè)人PC的串口和下位機(jī)電路板的同步串口進(jìn)行通訊,以把第一層所編譯好的密碼包及對(duì)應(yīng)的字庫(kù)文件傳送給下位機(jī)所對(duì)應(yīng)的不同存儲(chǔ)區(qū)間L其串口波特率為9600b/s,校驗(yàn)碼為無(wú)校驗(yàn),8位數(shù)據(jù)位,1位停止位。
4 基于DSP開(kāi)發(fā)的下位機(jī)解析系統(tǒng)設(shè)計(jì)
下位機(jī)解析系統(tǒng)所依賴(lài)的硬件系統(tǒng)主要包括DSP高速運(yùn)算處理器(核心CPU)、密碼包存儲(chǔ)所用的FLASH卡(兩片,8個(gè)區(qū))、用于人機(jī)交互的微型鍵盤(pán)以及部分儀器釆樣所需要的模擬及數(shù)字電路。
下位機(jī)解析系統(tǒng)存儲(chǔ)于DSP中的FALSH里,采用標(biāo)準(zhǔn)C編寫(xiě),包括FLASH控制子程序、鍵盤(pán)管理子程序、時(shí)鐘控制子程序、同步通訊子程序、液晶顯示子程序、密碼包解析子程序、打印控制子程序等。
4.1 對(duì)二進(jìn)制數(shù)據(jù)包的解析和處理
從上位機(jī)接收到的密碼文件包一般放在位于DSP外部的FLASH卡中。DSP軟件啟動(dòng)以后,首先按照密碼格式尋找第一頁(yè)底圖,并把底圖顯示在人機(jī)界面上;然后根據(jù)密碼文件包中該頁(yè)面菜單項(xiàng)的X坐標(biāo)、Y坐標(biāo)、寬度、長(zhǎng)度等屬性,繪制該頁(yè)的菜單項(xiàng);之后再根據(jù)密碼文件包中該頁(yè)面的菜單項(xiàng)的X坐標(biāo),Y坐標(biāo)繪制該頁(yè)上的數(shù)據(jù)項(xiàng)。
4.2 數(shù)據(jù)地址管理
系統(tǒng)可將密碼包存儲(chǔ)所用的FLASH卡(兩片,8個(gè)區(qū))的存儲(chǔ)空間分為0?7共8段:每段的0000-3000h都作為備用數(shù)據(jù)段。其中,0段(3OO2h-ffffh段)的數(shù)據(jù)可讀可寫(xiě),但掉電不保存,可存放系統(tǒng)的實(shí)時(shí)數(shù)據(jù);1段(3000h-7fffh)段的數(shù)據(jù)亦可讀可寫(xiě),但掉電后可保存,用于存放系統(tǒng)需要保存的數(shù)據(jù);(8002h-ffffh)段的數(shù)據(jù)用于保存地址空間,就是數(shù)據(jù)庫(kù)的存放位置,但設(shè)計(jì)時(shí)必須用命令整段平移2?7段。此段用于放置密碼文件包。
4.3 動(dòng)態(tài)界面的切換和數(shù)據(jù)顯示
動(dòng)態(tài)界面切換時(shí),先將光標(biāo)移到某一菜單,并點(diǎn)擊微型鍵盤(pán)上的“確定”,DSP程序得到中斷響應(yīng)后,會(huì)自動(dòng)在密碼文件包中尋找這一菜單的基本信息,并根據(jù)“菜單屬性”,“子頁(yè)頁(yè)號(hào)”,“字符串長(zhǎng)度”,“字符串”這四個(gè)關(guān)鍵字來(lái)判斷下一步動(dòng)作,或者顯示新的子頁(yè)界面,也可以顯示一個(gè)上位機(jī)預(yù)先定義好的彈出窗體界面。
數(shù)據(jù)顯示時(shí),在DSP繪制完新的頁(yè)面、所屬的菜單項(xiàng)和數(shù)據(jù)項(xiàng)之后,DSP程序?qū)ⅠR上準(zhǔn)備刷新頁(yè)面。系統(tǒng)會(huì)首先自動(dòng)在密碼文件包中尋找這一數(shù)據(jù)項(xiàng)的基本信息,根據(jù)數(shù)據(jù)類(lèi)型、數(shù)據(jù)地址、格式以及在密碼包中所蘊(yùn)涵的對(duì)應(yīng)信息,把數(shù)據(jù)正確的顯示在人機(jī)界面上。
4.4 同步串口與底層硬件的數(shù)據(jù)交換與控制
這一層次由兩大模塊組成,一個(gè)模塊負(fù)責(zé)人機(jī)界面顯示,釆用通用模塊處理的DSP;另一個(gè)模塊是儀器采樣所需要的模擬及數(shù)字電路。不同的儀器對(duì)應(yīng)的電路算法不同,但是,兩者之間均采用同步串口連接,開(kāi)發(fā)人員僅需要根據(jù)不同的開(kāi)發(fā)需求定制采集電路和控制電路即可。
5 結(jié)論
該套基于DSP的開(kāi)發(fā)系統(tǒng)針對(duì)現(xiàn)有技術(shù)的不足,對(duì)現(xiàn)有的開(kāi)發(fā)儀器儀表所需的技術(shù)方案進(jìn)行了簡(jiǎn)化。它把儀器儀表開(kāi)發(fā)過(guò)程中的液晶屏底圖繪制、數(shù)據(jù)自動(dòng)顯示、上下位機(jī)通訊、數(shù)據(jù)處理模塊、波形圖繪制等所需的絕大部分工作統(tǒng)一于一個(gè)開(kāi)發(fā)系統(tǒng)之中, 故能減少開(kāi)發(fā)人員的工作量,提高開(kāi)發(fā)人員的工作效率。