999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于嵌入式的水上VHF自動(dòng)播報(bào)系統(tǒng)的設(shè)計(jì)

2016-05-14 01:38:00董濤
中國(guó)水運(yùn) 2016年7期
關(guān)鍵詞:嵌入式

董濤

摘要:水上VHF通信系統(tǒng)是全球通用的具有國(guó)際標(biāo)準(zhǔn)的通信方式,本文針對(duì)海事管理中航行信息發(fā)布需求來(lái)設(shè)計(jì)的一套基于嵌入式的VHF自動(dòng)播發(fā)系統(tǒng),本設(shè)計(jì)在類似非預(yù)制語(yǔ)音自動(dòng)播放應(yīng)用上具有一定的參考意義。

關(guān)鍵詞:嵌入式;VHF;TTS;自動(dòng)播發(fā)

中圖分類號(hào):U644 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1006-7973(2016)07-0031-03

VHF通信是保障長(zhǎng)江航行安全必不可少的通信手段,因其具有統(tǒng)一的國(guó)際標(biāo)準(zhǔn),主要應(yīng)用于船與船、船與岸之間進(jìn)行的船舶會(huì)讓、遇險(xiǎn)報(bào)警、海事救助等方面的通信聯(lián)絡(luò),特別是由于其廣播的性質(zhì),在岸臺(tái)的水文氣象、航行通告等信息的發(fā)布上起到了不可替代的作用。但在當(dāng)前常用的需要定時(shí)播出的航行通告等信息的播發(fā)中,操作人員一般需要提前錄制好語(yǔ)音文件或者操作TYS軟件將文本轉(zhuǎn)為語(yǔ)音文件,再將該文件上傳給播發(fā)系統(tǒng)定時(shí)播出,該操作需要操作人員具備熟練的普通話能力和相關(guān)軟件操作能力,實(shí)際應(yīng)用中具有一定的難度。

本設(shè)計(jì)就是在需要通過VHF進(jìn)行航行通告等信息播發(fā)的單位、站點(diǎn)設(shè)置一臺(tái)基于嵌入式系統(tǒng)的播發(fā)主機(jī)與VHF船(岸臺(tái))機(jī)相連,操作人員通過內(nèi)部網(wǎng)絡(luò)使用瀏覽器訪問該主機(jī),在頁(yè)面上提交播發(fā)任務(wù)和文本播發(fā)內(nèi)容,該主機(jī)會(huì)按照任務(wù)列表進(jìn)行自動(dòng)播發(fā)。

1 系統(tǒng)設(shè)計(jì)方案

1.1 系統(tǒng)需求

要實(shí)現(xiàn)VHF自動(dòng)播報(bào)系統(tǒng),需要搭建一臺(tái)主機(jī)系統(tǒng)與VHF船(岸)臺(tái)機(jī)相連,實(shí)現(xiàn)以下功能:1.該主機(jī)能夠?qū)⒉?bào)內(nèi)容以音頻的方式發(fā)送給VHF船(岸)臺(tái)機(jī),并控制其播發(fā);2.該主機(jī)能存儲(chǔ)并管理播發(fā)內(nèi)容,實(shí)現(xiàn)定時(shí)按需播發(fā);3.該主機(jī)能夠接入內(nèi)部網(wǎng)絡(luò)中并實(shí)現(xiàn)遠(yuǎn)程訪問,用戶僅需提交文字版的播發(fā)內(nèi)容并可以對(duì)其進(jìn)行增、刪、改等操作;4.該主機(jī)要能專用并小型化,系統(tǒng)工作穩(wěn)定。

1.2 系統(tǒng)方案

根據(jù)系統(tǒng)需求,一臺(tái)基于嵌入式系統(tǒng)的主機(jī)系統(tǒng)方案能滿足需要,其系統(tǒng)架構(gòu)如圖1所示,采用安裝了Linux系統(tǒng)的嵌入式平臺(tái)作為控制主機(jī),在該主機(jī)上搭建web服務(wù)器和數(shù)據(jù)庫(kù)系統(tǒng)并設(shè)計(jì)播報(bào)軟件。遠(yuǎn)程用戶通過瀏覽器訪問該控制主機(jī),在管理頁(yè)面上提交需要發(fā)布的航行信息(文本),播報(bào)系統(tǒng)會(huì)在預(yù)定的時(shí)間將該內(nèi)容通過硬件TTS模塊轉(zhuǎn)換為語(yǔ)音信號(hào)輸出至VHF船(岸)臺(tái)機(jī)并向附近水域播發(fā)。

2 硬件選型

系統(tǒng)硬件架構(gòu)如圖2,由主機(jī)模塊、電源模塊和VHF模塊組成。主要硬件設(shè)備選型如下:

2.1 控制主機(jī)

控制主機(jī)選用樹莓派2代。樹莓派是樹莓派基金會(huì)發(fā)布的卡片式電腦,具有900MHz主頻的4核ARM Cortex-A7 CPU、1G內(nèi)存、10/100M以太網(wǎng)接口的主機(jī)系統(tǒng),主板上載有40針的GPIO(General Purpose Input Output通用輸入輸出)接口,連接實(shí)現(xiàn)外部控制和串行通信功能。利用MicroSD卡作為存儲(chǔ),安裝和運(yùn)行基于Linux的Raspbian或Win10 IoT等操作系統(tǒng)。該主機(jī)完全性能可以滿足本項(xiàng)目的主機(jī)硬件平臺(tái)需求。

2.2 硬件TTS模塊

硬件TTS模塊選擇宇音天下公司出品的最新一代SYN6658中文語(yǔ)音合成芯片模塊。該語(yǔ)音芯片通過UART和上位機(jī)通信,直接接收待合成的文本數(shù)據(jù),實(shí)現(xiàn)文本到語(yǔ)音(TYS,TextTo Speech)的轉(zhuǎn)換功能。該模塊支持任意中文文本(<4K字節(jié))的合成,智能識(shí)別區(qū)分?jǐn)?shù)值、時(shí)間、度量衡、姓氏、多音字等各式文本,內(nèi)置多種提示音可選,并能實(shí)現(xiàn)男女聲、語(yǔ)速、語(yǔ)調(diào)、音量調(diào)整。該模塊接線簡(jiǎn)單,僅需連接供電、UART輸入,提供一路單聲道語(yǔ)音輸出,該模塊控制簡(jiǎn)單、功能強(qiáng)大,輸出語(yǔ)音柔和自然。

2.3 VHF船臺(tái)機(jī)

VHF船臺(tái)機(jī)選用建伍(KENWOOD)公司的TM-271A型VHF調(diào)頻對(duì)講機(jī),該型VHF調(diào)頻對(duì)講機(jī)可以調(diào)整為水上專用VHF頻道。選用該型VHF船臺(tái)機(jī)的主要原因是該機(jī)型麥克風(fēng)接口使用的是標(biāo)準(zhǔn)的RJ45接頭,接線標(biāo)準(zhǔn)明晰,后期改裝簡(jiǎn)單。接線線序如圖3所示,6針為麥克風(fēng)輸入、5針為麥克風(fēng)地,將兩針與TTS模塊的語(yǔ)音輸出直接連接實(shí)現(xiàn)語(yǔ)音的輸入;4針為PTT(PushToTalk)腳、3針為地,將4/3針導(dǎo)通實(shí)現(xiàn)麥克風(fēng)手柄的PIT按鈕按下功能,其他接線腳懸空不用處理。

2.4 其他模塊

電源模塊直接利用VHF專用的13.6V直流電源給建伍VHF船臺(tái)機(jī)供電;樹莓派電源使用LM2596S直流可調(diào)降壓模塊,該模塊輸入3-40V、輸出1.5-35V(3A)可調(diào),使用時(shí)接入VHF電源,輸出調(diào)整為5V即可。

PIT控制使用1路繼電器模塊,該模塊驅(qū)動(dòng)電壓為5V,采用光耦隔離,低電平觸發(fā)。常開端與VHF接口第4/3針PTY/GND相連,通過觸發(fā)實(shí)現(xiàn)PTT按下功能。

由于樹莓派沒有實(shí)時(shí)時(shí)鐘,斷電之后時(shí)間會(huì)歸零。可以使用外接基于DS3231芯片的實(shí)時(shí)時(shí)鐘模塊在樹莓派啟動(dòng)時(shí)進(jìn)行校時(shí)以保證運(yùn)行時(shí)間準(zhǔn)確。也可以在系統(tǒng)啟動(dòng)之后連接內(nèi)網(wǎng)的NTP服務(wù)器實(shí)現(xiàn)授時(shí)及校時(shí)功能。

3 軟件設(shè)計(jì)

系統(tǒng)軟件的總體設(shè)計(jì)思路是基于任務(wù)表驅(qū)動(dòng)系統(tǒng)運(yùn)行。播報(bào)系統(tǒng)每分鐘讀取一次數(shù)據(jù)庫(kù)中的任務(wù)表,任務(wù)表中任務(wù)時(shí)間以分鐘為單位,將表中的任務(wù)時(shí)間與系統(tǒng)時(shí)間相比對(duì),如果時(shí)間相符則播出該條播報(bào)信息,播放完成后將播放內(nèi)容保存至已播放表。系統(tǒng)運(yùn)行流程圖如圖4所示:

要實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)目標(biāo),需要完成以下系統(tǒng)及軟件的設(shè)計(jì):

3.1 操作系統(tǒng)搭建

樹莓派使用主板上的bootload來(lái)引導(dǎo)燒錄在MicroSD卡上的操作系統(tǒng)鏡像來(lái)啟動(dòng)系統(tǒng)。在本設(shè)計(jì)中使用的是Raspbian系統(tǒng),Raspbian是基于Debian GNU/Linux的免費(fèi)操作系統(tǒng),它面向Raspberry Pi硬件(armhf處理器架構(gòu))做了優(yōu)化,內(nèi)置了多個(gè)常用的軟件包和預(yù)編譯軟件,非常適合于常用的web服務(wù)器、物聯(lián)網(wǎng)設(shè)備控制等系統(tǒng)設(shè)計(jì)和開發(fā)。

Raspbian系統(tǒng)安裝:首先從Raspbian官方或者國(guó)內(nèi)鏡像下載Raspbian系統(tǒng)包,然后在windows系統(tǒng)下使用Win32DiskImag-er將.img文件寫人MicroSD卡;再將卡插入樹莓派MicroSD插槽,上電后Raspbian會(huì)自動(dòng)啟動(dòng)。在完成系統(tǒng)安裝之后,通過SSH登陸樹莓派設(shè)置好靜態(tài)lP地址并安裝VNC Server,方便后期使用vnc客戶端遠(yuǎn)程登陸至樹莓派x desktop上進(jìn)行操作。

本設(shè)計(jì)使用Linux+Nginx+SQLite+Python+Django架設(shè)服務(wù)器來(lái)取代常用的LAMP(Linux+Apache+Mysql+PHP)的方式來(lái)架設(shè)Web服務(wù),因?yàn)樵摲绞捷^LAMP來(lái)說(shuō)資源消耗低,開發(fā)起來(lái)也比較便捷。樹莓派上安裝Nginx/Django/SQLite/Python的方法網(wǎng)上較多,此處不贅述了。

3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

本設(shè)計(jì)使用SQLite作為數(shù)據(jù)庫(kù)系統(tǒng),SQLite是一款輕量化的數(shù)據(jù)庫(kù)系統(tǒng),其設(shè)計(jì)目標(biāo)就是使用在嵌入式系統(tǒng)中,資源占用小但功能強(qiáng)大,它獨(dú)立、開源并支持多種開發(fā)語(yǔ)言,是輕量級(jí)嵌入式開發(fā)較為合適的數(shù)據(jù)庫(kù)系統(tǒng)。

SQLite數(shù)據(jù)庫(kù)為單文件數(shù)據(jù)庫(kù),本設(shè)計(jì)數(shù)據(jù)庫(kù)名為playlist.db,其中包含兩個(gè)主要的表:tasklist(播放任務(wù))、complist(已播放)表。其中,tasklist表主要有以下字段:

playtime TEXT//計(jì)劃播報(bào)時(shí)間

freq

INTEGER//播報(bào)頻率

num

INTEGER//播報(bào)次數(shù)

title TEXT//播報(bào)內(nèi)容標(biāo)題

text TEXT//播報(bào)內(nèi)容

其中playtime為播報(bào)時(shí)間,格式為YYYYMMDDHHMM,如201601011330;freq播報(bào)頻率指間隔多少分鐘播出一次(根據(jù)實(shí)際播出要求,該頻率一般為5-120分鐘);nun指一共播出多少次;title限定20漢字以內(nèi);text限定200漢字以內(nèi)。

eomplist表用于保存已播放內(nèi)容,僅需playtime、title和text字段。

根據(jù)日常使用經(jīng)驗(yàn),系統(tǒng)主要是針對(duì)tasklist表中的內(nèi)容進(jìn)行增、刪、改操作,即向播放列表中加入播放條目、播放完成后刪除播放條目、對(duì)未播放內(nèi)容進(jìn)行修改,數(shù)據(jù)紀(jì)錄條數(shù)較少,檢索方便。complist表主要是增加數(shù)據(jù)紀(jì)錄操作,由于該表是每次播放完成后將已播放內(nèi)容加入,數(shù)據(jù)紀(jì)錄天然按照播放時(shí)間(playtime)字段增序排列,不需要進(jìn)行額外排序工作。

3.3 WEB服務(wù)器設(shè)計(jì)

WEB服務(wù)框架采用Django。Django是一個(gè)開放源代碼的Web應(yīng)用框架,由Python寫成,采用了MVC(Model View Control-ler,模型、視圖、控制器)的軟件設(shè)計(jì)模式。選用Django的原因是使用框架封裝了控制層,數(shù)據(jù)調(diào)用等操作只需調(diào)用相應(yīng)的方法即可完成,另外有大量的第三方插件可以使用,大大的提高開發(fā)的效率。

WEB服務(wù)器采用Nginx。Nginx是一款輕量級(jí)的Web服務(wù)器,占用內(nèi)存僅幾兆,非常適合于樹莓派上構(gòu)建WEB服務(wù)。Django通過Nginx+uWSGI來(lái)部署,Nginx作為服務(wù)器最前端,它將接收WEB的所有請(qǐng)求,統(tǒng)一管理請(qǐng)求。Nginx把所有靜態(tài)請(qǐng)求自己來(lái)處理,非靜態(tài)請(qǐng)求通過uWSGI傳遞給Django,由Django來(lái)進(jìn)行處理,從而完成一次WEB請(qǐng)求。

WEB頁(yè)面設(shè)計(jì)比較簡(jiǎn)單,直接借用一個(gè)基礎(chǔ)的論壇發(fā)布頁(yè)面,簡(jiǎn)單修改后調(diào)用數(shù)據(jù)庫(kù)內(nèi)容顯示在頁(yè)面上,可以對(duì)每個(gè)條目進(jìn)行增、刪、改操作。

3.4 播報(bào)軟件設(shè)計(jì)

播報(bào)軟件使用Python軟件開發(fā),Python是一種面向?qū)ο蟆⒔忉屝陀?jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,該語(yǔ)言簡(jiǎn)潔、易用和可擴(kuò)展,比較方便使用于WEB開發(fā)應(yīng)用中。

播報(bào)軟件主要由數(shù)據(jù)庫(kù)訪問和文本TYS輸出組成:

3.4.1 數(shù)據(jù)庫(kù)訪問

系統(tǒng)運(yùn)行中正常的數(shù)據(jù)庫(kù)訪問涉及tasklist表的增加、刪除和更新及complist表的增加操作。系統(tǒng)上電運(yùn)行之后,每分鐘查詢一次tasklist表,比對(duì)是否存在playtime與當(dāng)前時(shí)間相符的記錄,如果相符則將該條記錄中text字段內(nèi)容(播發(fā)內(nèi)容)輸出,播發(fā)完成之后,將該條記錄復(fù)制進(jìn)complist表,表明該條播發(fā)任務(wù)已經(jīng)完成。然后查看nun字段是否大于1(需要多次播發(fā)),如果不大于則表明需要多次播發(fā)的任務(wù)已經(jīng)完成,刪除該條記錄;如果沒有完成則將nun字段內(nèi)容減一,將playtime字段時(shí)間加上freq內(nèi)容(構(gòu)成下一次播發(fā)時(shí)間);最后重新更新該條記錄,形成一條新的播發(fā)任務(wù)記錄。

3.4.2 文本TTS輸出

通過將text字段內(nèi)容(文本)向串口輸出至SYN6658芯片實(shí)現(xiàn)文字到語(yǔ)音的轉(zhuǎn)換后從VHF船臺(tái)機(jī)播出主要由以下兩個(gè)過程完成:

3.4.2.1 FFF按鈕的按下

根據(jù)樹莓派GPIO定義,使用GPIO 0(第11腳)作為控制腳,與繼電器模塊IN腳相接。

GPIO.setmode(GPIO.BOARD)//使用GPIO.BOARD模式

GPIO.setup(11,GPIO.OUT)//將11腳(GPIO 0)設(shè)為輸出模式

吸合繼電器時(shí)使用:GPIO.output((11,GPIO.LOW),此時(shí)VHF船臺(tái)機(jī)FFF與GND導(dǎo)通,相當(dāng)于PTT按鈕按下,VHF船臺(tái)機(jī)處于發(fā)送模式。

釋放繼電器時(shí)使用:GPIO.output(11,GPIO.HIGH),此時(shí)VHF船臺(tái)機(jī)PTT與GND斷開,相當(dāng)于PTY按鈕釋放,VHF船臺(tái)機(jī)處于接收模式。

3.4.2.2 串口文本輸出

樹莓派原生有一個(gè)串口,為GPIO 14(TXD)和GPIO 15(RXD),但該串口默認(rèn)為調(diào)試口,需要在樹莓派配置界面中將串口調(diào)試功能關(guān)閉。將GPIO 14與SYN6658模塊RXD連接,GPIO 15與SYN6658模塊TXD連接,波特率默認(rèn)為9600bps。

樹莓派與SYN6658之間通信使用數(shù)據(jù)幀的方式,數(shù)據(jù)幀格式如下表:

樹莓派向串口輸出控制播發(fā)的過程為:

ser=serial.Serial("/dev/uyAMA0",9600)

ser.write('\xFD')//輸出固定幀頭0xFD

ser.write('\x00\x66')//數(shù)據(jù)區(qū)長(zhǎng)度為102字節(jié)(發(fā)送50個(gè)漢字)

ser.write('\x01\x00')//以GB2312編碼格式合成播放

ser.write(data)//輸出待發(fā)送文本

通過輸出不同的命令字可以控制芯片播發(fā)、停止、暫停、恢復(fù)等合成文本操作。

輸出0xFD 0x00 0x01 0x21命令可以查詢芯片工作狀態(tài),芯片收到查詢指令后,返回0x4E表明仍在合成過程中,返回0x4F表明處于空閑狀態(tài)。

合成工作完成后表明所有待發(fā)送的文本已經(jīng)全部提交合成完畢,如果系統(tǒng)工作正常,那么該條航行信息應(yīng)該通過VHF船臺(tái)機(jī)向附近水域播發(fā)完成,此時(shí)將FTT按鈕釋放,整個(gè)播發(fā)過程結(jié)束,系統(tǒng)進(jìn)入下一次播發(fā)的準(zhǔn)備狀態(tài)中。

猜你喜歡
嵌入式
Focal&Naim同框發(fā)布1000系列嵌入式揚(yáng)聲器及全新Uniti Atmos流媒體一體機(jī)
TS系列紅外傳感器在嵌入式控制系統(tǒng)中的應(yīng)用
電子制作(2019年7期)2019-04-25 13:17:14
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計(jì)
嵌入式系統(tǒng)通信技術(shù)的應(yīng)用
電子制作(2018年18期)2018-11-14 01:48:16
嵌入式PLC的設(shè)計(jì)與研究
電子制作(2018年16期)2018-09-26 03:27:18
搭建基于Qt的嵌入式開發(fā)平臺(tái)
基于嵌入式系統(tǒng)Windows CE的應(yīng)用程序開發(fā)
嵌入式單片機(jī)在電機(jī)控制系統(tǒng)中的應(yīng)用探討
電子制作(2017年8期)2017-06-05 09:36:15
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 色婷婷成人| 国产污视频在线观看| 日韩欧美中文| 色婷婷综合激情视频免费看| 久久久久夜色精品波多野结衣| AV熟女乱| 999精品色在线观看| 在线a网站| 亚洲精品视频免费| 漂亮人妻被中出中文字幕久久| 国产区人妖精品人妖精品视频| a毛片免费观看| 高清乱码精品福利在线视频| 在线免费a视频| AV片亚洲国产男人的天堂| 中文字幕有乳无码| 视频一区亚洲| 久久a级片| 青青青草国产| 欧美日韩亚洲综合在线观看| 欧美综合中文字幕久久| 欧美第一页在线| 亚洲a免费| 77777亚洲午夜久久多人| 亚洲第一成网站| 国国产a国产片免费麻豆| 欧美成人午夜视频免看| 亚洲精品麻豆| 亚洲男人在线| 女人毛片a级大学毛片免费| 日韩不卡高清视频| 精品国产一区二区三区在线观看 | 欧美a级完整在线观看| 国产91高清视频| 欧美午夜精品| 蝌蚪国产精品视频第一页| 欧美人与动牲交a欧美精品| 日韩第一页在线| 亚洲一区二区无码视频| 亚洲综合狠狠| 在线欧美一区| 精品国产成人a在线观看| 国产白丝av| 欧美日韩亚洲综合在线观看| 青青青草国产| 91日本在线观看亚洲精品| 五月天香蕉视频国产亚| 小说 亚洲 无码 精品| 亚洲AV电影不卡在线观看| 成人福利在线视频| 97狠狠操| 无码视频国产精品一区二区| 美女毛片在线| 国产精品亚洲欧美日韩久久| 精品无码日韩国产不卡av| 99re在线免费视频| 最新国产午夜精品视频成人| 日本亚洲欧美在线| 成人国产小视频| 福利一区在线| 成人无码一区二区三区视频在线观看| 欧洲高清无码在线| 国产91在线|中文| 四虎免费视频网站| 亚洲视频在线观看免费视频| 日本欧美成人免费| 女同久久精品国产99国| 国产三区二区| 国产清纯在线一区二区WWW| 97久久超碰极品视觉盛宴| 最新国产网站| 久爱午夜精品免费视频| 国产91熟女高潮一区二区| 在线观看91香蕉国产免费| 亚洲国产理论片在线播放| 蜜桃视频一区二区三区| 永久在线播放| 午夜日b视频| 国产成人区在线观看视频| 毛片网站观看| 亚洲精品第一页不卡| 亚洲成人黄色在线|