基于嵌入式的水上VHF自动播报系统的设计.doc

上传人:gs****r 文档编号:1899755 上传时间:2019-03-21 格式:DOC 页数:9 大小:113KB
下载 相关 举报
基于嵌入式的水上VHF自动播报系统的设计.doc_第1页
第1页 / 共9页
基于嵌入式的水上VHF自动播报系统的设计.doc_第2页
第2页 / 共9页
基于嵌入式的水上VHF自动播报系统的设计.doc_第3页
第3页 / 共9页
基于嵌入式的水上VHF自动播报系统的设计.doc_第4页
第4页 / 共9页
基于嵌入式的水上VHF自动播报系统的设计.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、1基于嵌入式的水上 VHF 自动播报系统的设计摘要:水上 VHF 通信系统是全球通用的具有国际标准的通信方式,本文针对海事管理中航行信息发布需求来设计的一套基于嵌入式的 VHF自动播发系统,本设计在类似非预制语音自动播放应用上具有一定的参考意义。 关键词:嵌入式;VHF;TTS;自动播发 中图分类号:U644 文献标识码:A 文章编号:1006-7973(2016)07-0031-03 VHF 通信是保障长江航行安全必不可少的通信手段,因其具有统一的国际标准,主要应用于船与船、船与岸之间进行的船舶会让、遇险报警、海事救助等方面的通信联络,特别是由于其广播的性质,在岸台的水文气象、航行通告等信息

2、的发布上起到了不可替代的作用。但在当前常用的需要定时播出的航行通告等信息的播发中,操作人员一般需要提前录制好语音文件或者操作 TYS 软件将文本转为语音文件,再将该文件上传给播发系统定时播出,该操作需要操作人员具备熟练的普通话能力和相关软件操作能力,实际应用中具有一定的难度。 本设计就是在需要通过 VHF 进行航行通告等信息播发的单位、站点设置一台基于嵌入式系统的播发主机与 VHF 船(岸台)机相连,操作人员通过内部网络使用浏览器访问该主机,在页面上提交播发任务和文本播发内容,该主机会按照任务列表进行自动播发。 21 系统设计方案 1.1 系统需求 要实现 VHF 自动播报系统,需要搭建一台主

3、机系统与 VHF 船(岸)台机相连,实现以下功能:1.该主机能够将播报内容以音频的方式发送给 VHF 船(岸)台机,并控制其播发;2.该主机能存储并管理播发内容,实现定时按需播发;3.该主机能够接入内部网络中并实现远程访问,用户仅需提交文字版的播发内容并可以对其进行增、删、改等操作;4.该主机要能专用并小型化,系统工作稳定。 1.2 系统方案 根据系统需求,一台基于嵌入式系统的主机系统方案能满足需要,其系统架构如图 1 所示,采用安装了 Linux 系统的嵌入式平台作为控制主机,在该主机上搭建 web 服务器和数据库系统并设计播报软件。远程用户通过浏览器访问该控制主机,在管理页面上提交需要发布

4、的航行信息(文本) ,播报系统会在预定的时间将该内容通过硬件 TTS 模块转换为语音信号输出至 VHF 船(岸)台机并向附近水域播发。 2 硬件选型 系统硬件架构如图 2,由主机模块、电源模块和 VHF 模块组成。主要硬件设备选型如下: 2.1 控制主机 控制主机选用树莓派 2 代。树莓派是树莓派基金会发布的卡片式电脑,具有 900MHz 主频的 4 核 ARM Cortex-A7 CPU、1G 内存、10/100M 以太网接口的主机系统,主板上载有 40 针的 GPIO(General Purpose 3Input Output 通用输入输出)接口,连接实现外部控制和串行通信功能。利用 Mi

5、croSD 卡作为存储,安装和运行基于 Linux 的 Raspbian 或 Win10 IoT 等操作系统。该主机完全性能可以满足本项目的主机硬件平台需求。 2.2 硬件 TTS 模块 硬件 TTS 模块选择宇音天下公司出品的最新一代 SYN6658 中文语音合成芯片模块。该语音芯片通过 UART 和上位机通信,直接接收待合成的文本数据,实现文本到语音(TYS,TextTo Speech)的转换功能。该模块支持任意中文文本(4K 字节)的合成,智能识别区分数值、时间、度量衡、姓氏、多音字等各式文本,内置多种提示音可选,并能实现男女声、语速、语调、音量调整。该模块接线简单,仅需连接供电、UAR

6、T 输入,提供一路单声道语音输出,该模块控制简单、功能强大,输出语音柔和自然。 2.3 VHF 船台机 VHF 船台机选用建伍(KENWOOD)公司的 TM-271A 型 VHF 调频对讲机,该型 VHF 调频对讲机可以调整为水上专用 VHF 频道。选用该型 VHF 船台机的主要原因是该机型麦克风接口使用的是标准的 RJ45 接头,接线标准明晰,后期改装简单。接线线序如图 3 所示,6 针为麦克风输入、5 针为麦克风地,将两针与 TTS 模块的语音输出直接连接实现语音的输入;4 针为 PTT(PushToTalk)脚、3 针为地,将 4/3 针导通实现麦克风手柄的PIT 按钮按下功能,其他接线

7、脚悬空不用处理。 2.4 其他模块 电源模块直接利用 VHF 专用的 13.6V 直流电源给建伍 VHF 船台机供4电;树莓派电源使用 LM2596S 直流可调降压模块,该模块输入 3-40V、输出 1.5-35V(3A)可调,使用时接入 VHF 电源,输出调整为 5V 即可。 PIT 控制使用 1 路继电器模块,该模块驱动电压为 5V,采用光耦隔离,低电平触发。常开端与 VHF 接口第 4/3 针 PTY/GND 相连,通过触发实现 PTT 按下功能。 由于树莓派没有实时时钟,断电之后时间会归零。可以使用外接基于 DS3231 芯片的实时时钟模块在树莓派启动时进行校时以保证运行时间准确。也可

8、以在系统启动之后连接内网的 NTP 服务器实现授时及校时功能。 3 软件设计 系统软件的总体设计思路是基于任务表驱动系统运行。播报系统每分钟读取一次数据库中的任务表,任务表中任务时间以分钟为单位,将表中的任务时间与系统时间相比对,如果时间相符则播出该条播报信息,播放完成后将播放内容保存至已播放表。系统运行流程图如图 4 所示: 要实现系统设计目标,需要完成以下系统及软件的设计: 3.1 操作系统搭建 树莓派使用主板上的 bootload 来引导烧录在 MicroSD 卡上的操作系统镜像来启动系统。在本设计中使用的是 Raspbian 系统,Raspbian 是基于 Debian GNU/Lin

9、ux 的免费操作系统,它面向 Raspberry Pi 硬件(armhf 处理器架构)做了优化,内置了多个常用的软件包和预编译软件,非常适合于常用的 web 服务器、物联网设备控制等系统设计和开发。 Raspbian 系统安装:首先从 Raspbian 官方或者国内镜像下载 Raspbian5系统包,然后在 windows 系统下使用 Win32DiskImag-er 将.img 文件写人MicroSD 卡;再将卡插入树莓派 MicroSD 插槽,上电后 Raspbian 会自动启动。在完成系统安装之后,通过 SSH 登陆树莓派设置好静态 lP 地址并安装 VNC Server,方便后期使用

10、vnc 客户端远程登陆至树莓派 x desktop 上进行操作。 本设计使用 Linux+Nginx+SQLite+Python+Django 架设服务器来取代常用的 LAMP(Linux+Apache+Mysql+PHP)的方式来架设 Web 服务,因为该方式较 LAMP 来说资源消耗低,开发起来也比较便捷。树莓派上安装Nginx/Django/SQLite/Python 的方法网上较多,此处不赘述了。 3.2 数据库设计 本设计使用 SQLite 作为数据库系统,SQLite 是一款轻量化的数据库系统,其设计目标就是使用在嵌入式系统中,资源占用小但功能强大,它独立、开源并支持多种开发语言,

11、是轻量级嵌入式开发较为合适的数据库系统。 SQLite 数据库为单文件数据库,本设计数据库名为 playlist.db,其中包含两个主要的表:tasklist(播放任务) 、complist(已播放)表。其中,tasklist 表主要有以下字段: playtime TEXT/计划播报时间 freq INTEGER/播报频率 num INTEGER/播报次数 6title TEXT/播报内容标题 text TEXT/播报内容 其中 playtime 为播报时间,格式为 YYYYMMDDHHMM,如201601011330;freq 播报频率指间隔多少分钟播出一次(根据实际播出要求,该频率一般为

12、5-120 分钟) ;nun 指一共播出多少次;title 限定20 汉字以内;text 限定 200 汉字以内。 eomplist 表用于保存已播放内容,仅需 playtime、title 和 text 字段。 根据日常使用经验,系统主要是针对 tasklist 表中的内容进行增、删、改操作,即向播放列表中加入播放条目、播放完成后删除播放条目、对未播放内容进行修改,数据纪录条数较少,检索方便。complist 表主要是增加数据纪录操作,由于该表是每次播放完成后将已播放内容加入,数据纪录天然按照播放时间(playtime)字段增序排列,不需要进行额外排序工作。 3.3 WEB 服务器设计 WE

13、B 服务框架采用 Django。Django 是一个开放源代码的 Web 应用框架,由 Python 写成,采用了 MVC(Model View Control-ler,模型、视图、控制器)的软件设计模式。选用 Django 的原因是使用框架封装了控制层,数据调用等操作只需调用相应的方法即可完成,另外有大量的第三方插件可以使用,大大的提高开发的效率。 WEB 服务器采用 Nginx。Nginx 是一款轻量级的 Web 服务器,占用内存仅几兆,非常适合于树莓派上构建 WEB 服务。Django 通过7Nginx+uWSGI 来部署,Nginx 作为服务器最前端,它将接收 WEB 的所有请求,统一

14、管理请求。Nginx 把所有静态请求自己来处理,非静态请求通过uWSGI 传递给 Django,由 Django 来进行处理,从而完成一次 WEB 请求。 WEB 页面设计比较简单,直接借用一个基础的论坛发布页面,简单修改后调用数据库内容显示在页面上,可以对每个条目进行增、删、改操作。 3.4 播报软件设计 播报软件使用 Python 软件开发,Python 是一种面向对象、解释型计算机程序设计语言,该语言简洁、易用和可扩展,比较方便使用于 WEB开发应用中。 播报软件主要由数据库访问和文本 TYS 输出组成: 3.4.1 数据库访问 系统运行中正常的数据库访问涉及 tasklist 表的增加

15、、删除和更新及 complist 表的增加操作。系统上电运行之后,每分钟查询一次tasklist 表,比对是否存在 playtime 与当前时间相符的记录,如果相符则将该条记录中 text 字段内容(播发内容)输出,播发完成之后,将该条记录复制进 complist 表,表明该条播发任务已经完成。然后查看 nun字段是否大于 1(需要多次播发) ,如果不大于则表明需要多次播发的任务已经完成,删除该条记录;如果没有完成则将 nun 字段内容减一,将playtime 字段时间加上 freq 内容(构成下一次播发时间) ;最后重新更新该条记录,形成一条新的播发任务记录。 3.4.2 文本 TTS 输出

16、 8通过将 text 字段内容(文本)向串口输出至 SYN6658 芯片实现文字到语音的转换后从 VHF 船台机播出主要由以下两个过程完成: 3.4.2.1 FFF 按钮的按下 根据树莓派 GPIO 定义,使用 GPIO 0(第 11 脚)作为控制脚,与继电器模块 IN 脚相接。 GPIO.setmode(GPIO.BOARD)/使用 GPIO.BOARD 模式 GPIO.setup(11,GPIO.OUT)/将 11 脚(GPIO 0)设为输出模式 吸合继电器时使用:GPIO.output(11,GPIO.LOW) ,此时 VHF 船台机 FFF 与 GND 导通,相当于 PTT 按钮按下,

17、VHF 船台机处于发送模式。 释放继电器时使用:GPIO.output(11,GPIO.HIGH) ,此时 VHF 船台机 PTT 与 GND 断开,相当于 PTY 按钮释放,VHF 船台机处于接收模式。 3.4.2.2 串口文本输出 树莓派原生有一个串口,为 GPIO 14(TXD)和 GPIO 15(RXD) ,但该串口默认为调试口,需要在树莓派配置界面中将串口调试功能关闭。将 GPIO 14 与 SYN6658 模块 RXD 连接,GPIO 15 与 SYN6658 模块 TXD 连接,波特率默认为 9600bps。 树莓派与 SYN6658 之间通信使用数据帧的方式,数据帧格式如下表:

18、树莓派向串口输出控制播发的过程为: ser=serial.Serial(“/dev/uyAMA0“,9600) ser.write(xFD)/输出固定帧头 0xFD ser.write(x00x66)/数据区长度为 102 字节(发送 50 个9汉字) ser.write(x01x00)/以 GB2312 编码格式合成播放 ser.write(data)/输出待发送文本 通过输出不同的命令字可以控制芯片播发、停止、暂停、恢复等合成文本操作。 输出 0xFD 0x00 0x01 0x21 命令可以查询芯片工作状态,芯片收到查询指令后,返回 0x4E 表明仍在合成过程中,返回 0x4F 表明处于空闲状态。 合成工作完成后表明所有待发送的文本已经全部提交合成完毕,如果系统工作正常,那么该条航行信息应该通过 VHF 船台机向附近水域播发完成,此时将 FTT 按钮释放,整个播发过程结束,系统进入下一次播发的准备状态中。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 学科论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。