ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:113KB ,
资源ID:1899755      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1899755.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于嵌入式的水上VHF自动播报系统的设计.doc)为本站会员(gs****r)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

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

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个工作日内予以改正。