摘要:本文介紹一種基于GPS模塊和單片機SPCE061A設計的語音播報系統。該系統控制中心通過把從GPS獲得的定位信息與自身保存的站點信息相比較,以確定是否到站,并進行語音播報和文本顯示.本設計解決了以往列車報站系統的不足,真正實現了全自動、準確地播報站名及服務提示信息。
關鍵詞:全球定位系統;SPCE061A單片機;語音播報;安全數字卡;控制器局域網
引言
目前,列車系統播報(如列車下一站的站名、距離下一站的距離、下一站所在地方的旅游風景、名勝簡介等)普遍采用列車播音員通過語音播報的方式來實現,這種方式簡單易行,但也存在一些不足,常常出現誤報、漏報等現象,不能夠滿足列車系統的要求。本文設計一款列車自動語音播報系統,以凌陽16位單片機SPCE061A為控制核心、擴展外圍存儲介質保存語音資源,同時利用GPS模塊作為位置確定裝置,實現列車到站的語音播報功能。如圖1是手持式GPS系統結構框圖。
控制原理和系統組成
本設計中系統通過GPS與單片機的數據通信接口來接收位置信息。以現在最為常用的安全數字卡(SecureDigital Card,SD卡)作為擴展內存,用以保存不同的站點和語音信息。該系統控制中心通過把從GPS獲得的定位信息與自身保存的站點信息相比較,以確定是否到站和當前車站信息:并且分析出到站時間,以通過鍵盤隨時進行語音播報和文本顯示。在每種情況下、控制中心對信息進行判斷處理,并利用喇叭把內存中相應的語音信息輸出,把內存中相應的文字信息正確顯示??紤]到實際中特殊情況的需要(如列車意外故障的原因或者前方鐵路受損的突發原因),系統設置鍵盤掃描中斷,從而方便地實現自動播報和人工操作的轉換,并能夠按需要更新沿途站點信息和實現緊急情況的預報。而每節車廂之間,車廂與控制中心之間通過控制器局域網(controUer Area Network,CAN)來傳遞列車信息。
同時,為了人機交流界面友好,在控制中心可以通過上層PC來顯示即將到達的站名、時間等信息。其工作流程如圖2所示。
底層硬件設計
控制中心和車廂的從站均采用SPCE061A單片機作為控制部件的核心。GARMIN公司的GPSl5L是一款性價比高的衛星定位芯片,是異步串行數據輸入/輸出的。它適應全球、全天候的工作,能夠實時提供三維位置、三維速度和精密時間。GPS是以NAME協議格式發送消息的,接收到當前列車的緯度、經度和星歷時間后,通過電平轉換把信息傳給控制中心的微處理器。而CAN的通信協議主要是由CAN控制器完成的。底層硬件設計主要包括節點硬件電路設計和SD卡與微處理器的硬件設計。
SPCE061A單片機
SPCE06lA是一種新型的16位單片機,資源豐富,具有極高的性價比,為實現數碼錄音和播放提供了良好的條件。在SPCE061A上實現語音識別主要涉及到以下的幾個模塊.SPCE06lA最小系統,即包含內核以及基本的外圍模塊:晶振輸入模塊(OSC)、鎖相環外圍電路(PLL)、復位電路(RESET)、指示燈(LED)等,同時還包括存儲器、A/D、D/A、MIC等其它外圍接口模塊。
節點硬件電路設計
目前,廣泛應用的cAN總線控制器件有兩大類:一類是獨立的cAN控制器.如82C200、SIAl000及Intel82526/82527;另一類是帶有在片CAN的微控制器,如P8XC582及16位微控制器87C196CA/CB等。根據本次設計需要,我們采用NXP公司的SJA1000 CAN通信控制器和PCA82C250作為高性能CAN的總線收發器。它們與節點的微處理器的硬件電路原理如圖3。
SD卡與微處理器的硬件設計
SD卡有兩種總線模式,即SD總線模式和SPI總線模式。其中SD總線模式采用4條數據線并行傳輸數據,數據傳輸速率高,但是傳輸協議復雜,只有少數單片機才提供此接口而用軟件方法模擬SD總線又比較繁瑣,并會降低sD卡的數據傳輸速率;而SPI總線模式只有一條數據傳輸線,數據傳輸速率較低,但絕大多數中高檔單片機都提供sPI總線,也易于用軟件方法來模擬,此外.SPI總線模式的傳輸協議簡單,易于實現。為此,該設計采用SPI總線模式。
SPI系統的片選信號以及同步時鐘脈沖由主機提供。SPI總線模式的數據是以字節為單位進行傳輸的,每字節為8位,每個命令或者數據塊都是字節對齊的。主機與SD卡的各種通信都由主機控制,主機在對SD卡進行任何操作前都必須先要拉低SD卡的片選信號CS,然后由主機向SD卡發送命令,SD卡對主機發送的任何命令都要進行響應,不同的命令會有不同的響應格式。SD卡除了對命令響應外,在執行寫操作時,還要對主機發送的每個數據塊進行響應。
SPI總線模式下的所有命令都是由6個字節構成,且發送時高位在前,其命令格式如表1所示。其中.7位CRC校驗位可以全部寫入0,因為默認情況下,SPI總線模式無需CRC校驗。
文件存儲時,本文中使用文件分配表系統中的FAT.16類型。FATl6的系統分區有以下幾部分:①引導扇區,存放文件分配表的文件系統重要參數和引導程序;②FAT表,用來記錄數據區簇鏈情況;③根目錄區,文件存儲結構的入口就是根目錄,根目錄的位置緊隨FAT表之后,大小常為32個扇區:④文件數據區,是各種文件數據的實際存放區域。
簡要介紹SD卡的文件存儲:第1步是建立根目錄項:文件名、擴展名、文件(或文件夾)屬性、文件的修改信息、文件的首簇號和文件長度。第2步是分析FAT表,在FAT表中找到一個空簇(標記為00的簇),將該簇標記為文件尾簇(標記為FF),同時將該簇號作為首簇存儲到根目錄項中。第3步是向尾簇內存人數據,如果該簇已經存滿,則再次分析FAT表,在FAT表中找到下一個空簇(標記為00的簇),將該簇標記為文件尾簇(標記為FF),同時將FAT表中首簇號鏈接到該簇,修改根目錄項中的文件長度項。重復第3步,直到文件完全存入。
每節車廂(從站)的微處理器都連接上SD卡和液晶顯示,以便通過聲音和圖像顯示告訴乘客當前的列車狀態。它與微處理器的硬件原理如圖4所示。
軟件設計
由于GPS是RS232電平、所以位置數據要經過電平轉換才能給單片機SPCE061A的IOB7和IOB10以UART的方式來接收。而Pc端的界面是采用Visual C++的MFC類來編寫的,程序的流程如圖5所示。
CAN總線節點的軟件設計主要包括3部分:CAN節點初始化,報文發送和報文接收。報文的協議如表2所示。SD卡的程序流程如圖6所示。
結語
本系統中GPS采集的位置數據經過控制中心的16位單片機微處理器處理,同時控制中心采用人機交流友好的PC機界面,并結合控制器局域網(CAN)在每個車廂組網;每節車廂通過大儲存量的SD卡實現語音播報的功能。系統定位精度高、工作穩定、聲音悅耳動聽,在實際應用中取得了良好的效果。