孟治国
(广东轻工职业技术学院 电子通信工程系,广东 广州 510300)
基于音频线路传输数字信号的设计与应用
孟治国
(广东轻工职业技术学院 电子通信工程系,广东 广州 510300)
基于开发移动外设的目的,解决移动终端数据接口不相同、数据交换不便利等问题,设计一种编解码协议,并采用嵌入式系统开发核心模块,结合安装在移动终端的管理程序启动多线程,通过多线程协调嵌入式模块并实现数据的编解码,再通过扩展应用模块读写外存供后期利用,从而获得在传输声音的模拟信号线路上可靠传输数字信息,实现了一种开放性的接口,依靠移动终端为外设供电的设计思路有一定启发意义。
数字信号传输;信号供电;移动外设;嵌入式开发
在移动互联网时代,手机、平板电脑已是重要的个人运算终端,经由数据线或网络可以与电脑、互联网、云端交互各种的移动应用、APP、手机外设开发也很有吸引力。软件应用层的功能可交给第三方或个人开发者实现,安全解决方案贯穿研发、运营、维护、业务等全过程[1],但标配硬件有时却无法配合一些特定的需求,解决的办法之一是设计、制造手机外设,Apple Store、各网站的移动应用商城都鼓励这样的解决方案。
其中,必然涉及外设与手机交换信息,进而使用数据,问题是各个手机厂家的数据接口各不相同,一般要通过专用的数据接口,这也导致手机外设开发困难,成本较高。但各个厂家的音频接口是开放的,接口标准统一,使用手机的音频接口连接外部设备,通过它实现手机与外设的数据传输,开发成本低,通用性强,保密性好,适合传输数据量不大的应用。
通过智能移动电话、平板等终端设备(以下以手机代替)的耳机话筒插孔,完成数据传输、存储和利用的关键是要解决4方面的问题:1)如何通过模拟信号进行可靠的数字数据通信,在传输音频模拟信号的系统上交换数字信号,须新设计一种严格的通信机制和通信协议,保证数据传输安全、可靠;2)为了使产品使用便利,还要解决为外设的供电问题,最好不用配备外置、额外的电源适配器;3)数据通信必须借助合适的管理软件程序,软件是系统运作的核心,须考虑手机、平板的操作系统,基于智能终端是最好的选择;4)手机外设的功能不同,未来还会有哪些要求,都说明要为系统留出一定的扩展,避免应用的单一化、固定模式,故主控电路模块主要解决数据管理这一核心,基于数据的应用是普通读卡器、存储器、RFID还是手机付费验证系统,则留给第三方扩充。
为解决问题1),外设通过音频输入输出接口与智能终端进行数据通信,数据信号在主控模块中进行编解码处理,再通过控制装置读取、写入外部介质,并存储数据。数据传输的具体方式中,外设通过插入手机外置话筒输入接口或音频线路输入接口(以下简称输入接口)的连接插线发送数据信号给手机,外设通过插入手机外置耳机接口或音频线路输出接口(以下简称输出接口)的连接插线发送手机内的数据。
手机作为主控装置,由其产生位时钟信号、选择声道线路、收发数据,但在外设综合开发中,发现识别发送端比较困难。拟采用基带信号传输的数据传输协议,并为外设存储设备设计实现编解码及传输协议的嵌入式系统,与手机内装的处理软件共同解决识别问题和保障数据处理,设计的结构模块示意如图1所示。
图1 模块结构Fig.1 Modular structure
为了解决上述问题二,在外设主控模块外增加电源转换模块,手机通过程序发出固定频率的声音信号,此信号通过输出接口输出为一个固定频率的交流信号,此信号通过外设主控板上的电源模块电路转换为直流电,供电给整个外设。
为了解决上述问题三,数据交互采用软件方法实现,通过程序对从输入接口采集到的音频信号进行解码,通过程序对输出数据进行编码并送到音频输出接口,完成A/D转换,再与外设主控系统级的编解码电路逆向完成A/D转换。
为了解决上述问题四,基于嵌入式开发模式,主控电路模块主要实现双向信号的编解码及传输协议,并管理通过读写装置读取、写入外部介质上的存储数据,其他如保护电路、外围电路等细节不做详细介绍。
基于音频接口的数据传输方法可以弥补数据接口不一致的遗憾,并扩充音频接口的应用,设计难点是如何通过模拟信号进行数据通信,保证基于手机音频接口的数据传输可靠,依靠编译码算法[2]。语音信号的编码可分为波形编码与声码化编码,或称为非参数编码与参数编码,参数编码有时也称为模型编码。实现音频接口的双向通信的实现原理是,先把外接音频设备输入的信息转换成特殊的音频信号,通过音频口传到手机里面。手机程序监控音频输入,软件把输入的音频信息解析还原成可识别的指令。手机应用可以把需要发送的指令按照协议规范转换成特殊的音频信号,通过音频口传输出去。这需要与硬件有一个协议规范,解析规范可以自定义,这让我们参考现有的编解码技术,设计一种专门的、简约的规范成为可能。仿造AMI(Alternative Mark Inversion)编码,根据标准同步串行通讯协议编写,并做一定的相应改变,直接在音频线路上传输数据编码信号,优点是不进行载波调制与解调。设计的编解码机制如下:
1)数字基带信号的传输是数字通信系统的重要组成部分,在数字通信系统中,为使基带信号适合在基带信道中传输,必须选择合适的码型,AMI码是常选的码型之一[3]。基于音频接口的数据传输方法是一种串行通讯方法,参考标准同步串行和AMI码。AMI码是通信编码中的一种极性交替翻转码,分别由一个高电平和低电平表示两个极性。编码规则是,消息代码中的0传输码中也是的0;消息代码中的1编为传输码中的+1、-1交替。解码规则是,从收到的符号序列中将所有的-1变换成+1后,就可以得到原消息代码。由AMI码确定的基带信号中正负脉冲交替,而0电位保持不变,由AMI码确定的基带信号无直流分量,且只有很小的低频分量。由于它可能出现长的连0串,不易提取定时信号,拟由处理主芯片提供基波脉冲周期信号。
2)数据传输支持双工方式,从手机输出数据的传输使用音频输出线路,进入手机的数据的传输使用音频输入线路,发送数据前让总线(音频输入输出线路)空闲准备,提示接收方做好准备,总线空闲为真后连续发送9位以上的0编码。
3)串行通讯中,线路上传输的数据的单位为位,帧数据可以从任意一位开始,串行通讯需采用帧头标志进行同步,串行通讯的帧头标志采用与标准串口通信同步中一样的标识,即连续发送6个1,字符0x7e表示发送帧头标志成功。
4)发送字节时首先发送最高位,最后发送最低位,发送数据时字节间没有间隔,基于音频接口的串行通讯采用帧尾标志表示本次数据发送结束,连续发送7个1,即发送字符0x7f表示发送帧结束。结束后进入总线空闲状态。
5 )发送数据时,数据中很可能有连续的6个以上1,这与帧头标志或帧尾标志相同,会造成通讯歧义。为了消除歧义,规定当发送数据时,连续发送5个1后,必须发送一位无效的0,再接着发送其它数据。而接收到连续的5个1后,需要删除接着收到的0。如果连续的5个1并非一定在一个字节中,例如,两个字节0x0f和0xc0,每个字节都没有连续的5个1,但先发送0x0f后发送0xc0时,就有连续的5个1了,还需要动态插入一位0补位、删除一位0复位。基于音频接口的串行通讯,还可能出现长的连0串,传输的数据帧格式使用CRC算法进行校验。
6)基于音频接口的串行通讯中,编码流信息一般以块形式表示,块是位的整倍数,一个信息流块包含:块头、校验位、块尾和块负载信息,线路上传输格式化的数据帧[4]。
核心设计是提供一种基于音频接口的数据处理方法,以手机读卡器应用为例说明硬件设计,其他应用只需改变外设对输出数据或读取外部数据的相应电路。整个手机读卡器装置包括一块主控板、一个耳机/话筒插头、一个读卡磁头、存储芯片和外包装盒;其中的主控板电路由编解码电路、单片机模块电路、读卡器装置、滤波电路和电源模块电路组成。内部通信模块主要实现缓存收发的数据、 数据的串并/并串转换、时钟逻辑、处理信号。因此,其内部结构主要由地址译码模块、时钟分频模块、信号处理模块、发送模块、接收模块[5]。
主控模块对双向信号进行编解码处理的过程是:1)主控电路模块将介质传入的数据流编码成国标码数据,再编码为设计的格式数据信号,将数字信号转换成音频接口能够识别的模拟信号,送到连接手机的音频输入接口的传输线上,发送给手机。比如,读卡器装置专用解码芯片,采用单轨道读写,当用户刷卡时,单轨道磁头读取卡的磁道数据,通过解码电路,输出的信号转换成二进制信号,供主控模块电路读取,经过上述处理,手机最终得到了卡的数据。2)主控电路模块从连接手机输出接口的传输线上接收格式编码数据,解码成国标数据,再编码为数据流,送到缓冲暂存,以备具体应用的电路使用,如是读卡器,则把缓冲中的数据写入卡片。卡功能还可以再做扩展,如通过手机端安装的银联接口等应用软件,实现移动支付、网上购物等功能。
图2 电源模块电路图Fig.2 Power supply module circuit diagram
单片机模块电路选用低功耗的ARM微控制器,内部有可编程工作寄存器,首先在寄存器中开辟一个动态的全局缓存,存放协议栈数据,此后再为若干顺序数据分别开辟单独的缓存区和独立的进程,这些独立的进程将通过一定的交换机制,与其他相关进程进行数据交换。所有数据存取相关的进程完全并行,因此,整个过程除了外部数据的接收外,其他部分所消耗的时间只相当于处理一个数据所消耗的时间,从而提高了数据处理的速度。籍由可编程寄存器能方便地与手机通信,但需要遵守上面设计的数据协议规则,这也是促使设计一种新协议的动机之一。
一般有源滤波器利用模拟电路,实现带通滤波器检测负载电流的基波分量,设计的滤波电路是为了分离固定频率(可以由软件调节频率)交流信号与数据信号。
利用数字设备如FPGA、CPLD、电脑及软件很容易解决负载电压和电流脉冲信号的调节和协调[6]。为了解决外设在移动应用中的供电问题,提出一种给外设供电的特别方式。手机通过程序发出固定频率(22.1 kHz)、最大音量的声音信号,此信号通过耳机接口输出为一个固定频率的交流信号,再通过外设中的电源模块的电路转换为直流电,供电给包含主控模块在内的整个外设的电路。电源模块选用TPS6500集成芯片,电路设计如图2所示。
在手机终端上需配置专用软件管理数据传输、存储、处理等功能,音频接口的输入输出都可以在应用代码中做处理,通过程序线程对从音频输入接口采集到的音频信号进行解码,并送到音频输出接口[7]。线程与进程相似,是一段完成某个特定功能的代码,是程序中单个顺序的流控制。但与进程不同的是,同类的多个线程共享一块内存空间和一组系统资源,所以系统在各个线程之间切换时,资源占用要比进程小得多,正因如此,线程也被称为轻量级进程。一个进程中可以包含多个线程,执行不同的任务,多行语句可以看上去几乎在同一时间内同时运行。本设计系统的主程序运行最少3个线程,当数据传输服务程序在手机上启动后形成多线程:
1)创建一个监听音频输入接口数据的线程,负责对从音频输入接口采集到的音频信号,解码输出数据存放在接收数据缓存,通过调用外部业务程序注册的回调函数,通知外
部业务程序注册取得传入的数据。与音频输入需要的参数对照,实例化相关代码,获得音频接口数据的对象,对获得的音频流缓冲进行解码,监听音频接口是否有输入的音频流。如有,解码出来的数据根据协议解析,指令将音频流的模拟信号转换成数字信号。
2)创建一个音频交流发送线程,负责设置输出最大音量,生成固定频率音频交流信号并发送到音频输出线路上。实例化音频输出对象,执行音频输出相关代码,配置数据的编码调制,音频编码调制编码将需要发送的指令数据转换成一个模拟音频信号子进程;音频编码将数字信号转换成模拟信号输出,就可以作为音频输出流。需要读取外存设备信息时,将传入的信息编码成音频信号,转换成指令信息。
3)主线程循环等待发送数据缓存中的数据存入事件,当外部业务程序在数据要发送时,将要发送的数据放入共享的发送数据缓存中时,数据存入事件发生,所述的主线程取到要发送的数据,进行格式化编码,再用操作系统的音频控制接口函数发送到音频输出接口。
根据嵌入式开发的一般原理,软硬件混合开发,提出数据传输模块的解决方案,进而围绕数据传输核心任务完成硬件设计,为各种业务开发留出开放性的接口,设计软件包括与主控系统交互的控制程序,采用自定义通信协议传输数据,能满足串行通信同步的主要要求。从手机输出最大音量的固定频率交流转化为外设供电,解决了移动应用中的供电问题,方法较新颖,有一定参考价值。
[1]廖永红,孟治国,蔡朝曦.双网多媒体可视电话系统安全架构设计[J].电信技术,2009,42(10):66-68.
LIAO Yong-hong,MENG Zhi-guo,CAI Chao-xi.Security architecture of dual-network multi-media video-phone[J] .Communicstiond Technology,2009, 42(10) :66-68.
[2]徐正伟,汤静.语音信号及其编译码算法的研究[J].电声技术,2002(4):7-9.
XU Zheng-wei,TANG Jing.Study on Specch Signals and Their Codec Algorithms[J].Audio Engineering,2002(4):7-9.
[3] 夏平,向学军,吉培荣.基于FPGA的基带信号编译码器设计与实现[J].微计算机信息,2007,23(14):210-212 .
XIA Ping,XIANG Xue-jun,JI PEI Rong. Design and implementation of digital baseband dignal coder & decoder Via FPGA[J].Microcomputer Information,2007,23(14):210-212.
[4] 孟治国.基于音频接口的数据传输模块设计[J].电子科技,2013,26 (3):45-47.
MENG Zhi-guo.Design of data transmission module based on audio Interface [J].Electronic Sci. & Tech.,2013,26 (3):45-47.
[5] 罗柠,皮佑国.基于FPGA 的高速串行通信接口研究[J].信息技术,2013(7):113-116.
LUO Ning,PI You-guo. High-speed serial communication interface based on FPGA[J]. Information Tech,2013(7):113-116.
[6] M A, Ali E, Islam M, et al ,Strategies for synchronization and optimization of distributed generation system in a smart grid[C]//Proceedings of the 2012 International Conference on Green and Ubiquitous Technology (GUT),2012: 20-24 .
[7]官宗琪,肖质红.基于FX919B的高速数据传输模块的实现[J].电子器件,2007, 30(3) :1113-1117.
GUAN Zong-qi,XIAO Zhi-hong. The Realization of High-Speed Data Transmit Module Based on FX919B[J]. Chinese Journal of Electron Devices,2007, 30(3):1113-1117.
Design and application on the digital signal transmission based on the audio line
MENG Zhi-guo
(Department of Electronics Guangdong Industry Technical College, Guangzhou 510300,China)
To develop mobile peripherals, to solve some problems that the data interface of the mobile terminal is not the same and the data exchange is not convenient, a kind of communication protocols is designed. Employing the core module of embedded system to match management programs which be installed in the mobile terminal application,to launch the multiple threads programs which can coordinate embedded module to finish decoding of digital data, to extend the application of peripheral storage module for further, these can ensure to reliably transfer digital information through the audio analog signal transmission lines. It realizes a kind of open interfaces. The design thought, the power of peripherals was supplied by mobile terminals, has certain enlightening significance.
digital signal transmission; power supplied by signal; mobile peripherals; embedded development
TN871
A
1674-6236(2014)14-0099-04
2014-03-30 稿件编号:201403331
2012年度广东省科技计划项目(4202520)
孟治国(1970—),男,山西代县人,硕士,高级工程师。研究方向:电子信息工程。