周宗耀
(東南大學成賢學院,江蘇 南京210088)
隨著我國城市建設進程加快,交通運輸事業獲得快速發展。城市公交作為市民出行的重要工具,其服務質量關系到交通運輸事業發展[1]。城市公交服務質量提升,不能拘泥于單個角度,就特殊人群而言,報站系統是提升公交與乘客聯系的重要途徑,是優化城市公交的重要措施,通過設計可行性報站系統,可以顯著提升公交車為乘客提供服務的能力。
公交車報站系統設計所用硬件設備包含有顯示元器件、語音元器件、按鍵元器件、89C51 單片機。顯示元器件選擇使用的是LCD1602。該元器件擁有較高的顯示質量,并且接口位置呈數字式,具有較低的功能消耗。正是因為選擇使用的是數字式接口,能夠更加簡單的實現顯示模塊與單片機系統之間的連接,降低操作難度[2]。語音元器件選擇使用的是ISD4004。該元器件在對聲音進行記錄的時候,能夠摒棄傳統元器件的長度限制,同時在記錄聲音的時候,也不必完成壓縮和A/D 轉換。在進行介質存儲的時候,可以實現快速閃存,在沒有電源支撐的條件下,仍舊可以將數據保存至100 年,完成一萬次以上的信息重復記錄[3]。另外,ISD4004 具有良好音質和較長時間的記錄,在便攜式電子產品中被廣泛使用。開發與使用ISD4004 硬件設備的時候,對于外圍電路的要求同樣不高。按鍵元器件是最為簡單的設備,公交車報站系統設計的時候,只需要選擇三個按鍵進行操作即可,在功能設計的時候,要保證每個按鍵功能的可實現性。89C51 單片機是使用最為平常的一種51 芯片。89C51 是一種帶4K 字節閃爍可編程可擦除只讀存儲器(FPEROM-Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8 位微處理器,俗稱單片機。在制造該元件的時候,需要選擇使用ATMEL 高密度非易失存制造技術,兼具輸出管腳和指令集。
單片機又被稱作為單片微控制器,該設備綜合定時器/計時器、中央處理器、輸入輸出接口、程序存儲器以及數據存儲器等元件功能,進而可以實現相對較為復雜的運算和邏輯控制功能,達到通信的目的[4]。就本次選擇使用的單片機而言,最小系統同樣包含有上述結構。在本次設計中,單片機作為系統的中央處理器,可以總體控制液晶顯示模塊、語音模塊和按鍵模塊。液晶顯示模塊在運行中的基本原理是通過使用液晶物理特性,利用電壓控制顯示區域。只要通電,那么便可以將圖形顯示出來。其實在顯示一個字符的時候使用LCD,相對較為復雜。但是因為內帶字符發生器中具有相應的控制而簡單地將字符顯示出來。公交車報站系統中的按鍵是集合多個按鍵的表現形式,可以將數據和命令傳輸到系統當中。根據鍵盤的類型不同可以將其劃分成為編碼鍵盤和非編碼鍵盤。
公交車報站系統語音模塊所使用的硬件設備具有十分強的信息處理能力,其最高頻率可以達到49.152MHz,在進行運算的時候其具有比較高的速度,這種優勢能夠為播放語音、錄放語音、合成語音和分辨語音提供支持。在處理語音的時候可以將其大致劃分成為五個環節,詳細如下所示:

圖1 單片機對語音處理過程圖
在語音處理的環節中,具備多種不同的API 函數庫以及音頻編碼算法,在語音處理的環節中,綜合編碼環節、A/D 轉換環節、存儲環節、解碼環節以及D/A 轉換環節,從而獲得相應模塊[5]。在每個模塊當中,都必須擁有連接口。設計人員在系統設計環節當中需要對模塊所具備的功能充分了解,并且對其參數內容清晰掌握之后,將API 函數進行調用,實現相應的功能。在表1 中針對性地列出相應的功能。

表1 常用應用程序接口API 功能表
在控制語音芯片的時候,選擇使用單機端口完成信號輸出。其程序子函數模塊代碼如下所示:

在按鍵部分設計的時候,選擇使用的方法是掃描法。當系統感知到有按鍵下按以后,可以判斷鍵值,同時要完成相應的程序顯示與跳轉語音播放程序,完成公交車語音報站[6]。在本次設計中,按鍵部分所實現的主要功能流程為讀取數據信息,判斷完成按鍵操作以后是否存在系統感知,若有則繼續完成延時去抖,否則無任何反應。按下按鍵1,若是有意義,則液晶顯示,同時播放內容。若是不顯示,則按下按鍵2。若是有反應則基于Num 值顯示內容,同時播放內容。若是不顯示,則按下按鍵3,若是有反應則基于Num 值顯示內容,同時播放內容,否則返回。
掃描法在按鍵部分中的程序如下所示:

在本次系統設置當中選擇使用液晶顯示,液晶顯示模組選擇應用的芯片為驅動控制。該模組能夠與其他微控制器接口的總線實現直接相連,通過使用微控制器能夠將數據顯示出來[7]。通過一種八位數據總線或者是串行接口將數據信息寫入到硬件元件之中,從而顯示出所需要的信息。在顯示模組的元件當中內置顯示RAM。在RAM當中,一位數據控制液晶屏上的一個像素點的亮暗狀態。當為1 的時候,則表示“亮”狀態,當為0 的時候,則表示“暗”狀態。
顯示定位子函數程序如下所示:

在調試公交車報站系統時,從軟件調試與硬件調試兩個角度展開,首先要對其硬件電路板進行調試,之后通過使用萬用表工具檢查電路調試,最后調試應用程序的功能。在調試硬件的時候所耗費的時間要多,也必須要求調試人員擁有耐心和細心,熟練掌握電路的原理[8-10]。
其次,完成仿真調試。例如單片機編輯軟件所提供的開發環境,如宏編輯器、庫管理、C 編輯器,通過運行能力可以對程序存在的錯誤進行檢查。但是這種方法的使用,仍舊要求調試人員對元器件的工作方式與管腳連接方式充分了解。
在本次設計當中直接完成了硬件設備的調試,可以得知硬件幾乎沒有出現任何問題。在進行軟件調試的時候,曾遇到以下問題。
第一,在初次啟動硬件時發現,LED 的亮度存在著不均勻現象。通過分析可以得知,在程序當中的相關程序顯示時出現延時。
第二,在對按鍵進行調試的時候,當按下任意一個按鍵的時候,系統處于定格狀態,再按下按鍵沒有出現任何反應。對程序進行查詢得知,在循環和延時的程序當中,對于寄存器的重復使用導致該現象出現。
本文簡要概述了公交車語音報站系統,通過本文的研究認識到系統的軟件和硬件組成。文章中概述了不同模塊的工作原理和實現方式,同時對系統軟件作出設計,給出總體思路,為公交車語音報站系統的后期研究工作提供支持。