基于Wifi的电子看板的语音系统的设计与实现
扫描二维码
随时随地手机看文章
电子看板是看板管理和以计算机技术为主的信息技术相结合的一和管理工具。最初是丰田汽车公司于20世纪50年代从超级市场的运行机制中得到启示,作为一种生产、运送指令的传递工具而被创造出来的。
传统的管理看板放在生产线上,实时显示生产线相关信息一目标产量、实际产量、合格率等。通过看板,管理者、生产者只要通过看板所表示的信息,就可知道流水线的各项生产情况。管理者根据生产现场的情况反映,对下线进行整个生产调度和协调发布指令的系统。指令越是及时,越有针对性,那么其生产线每个环节的配合就更加默契,更有效率。笔者给出一种新型电子看板,除了传统看板功能外,增加了刷卡认证、视频监控、语音通话功能。
1 系统构成
系统构成如图1所示。
图1 看板系统
汇总看板PC机,安装Windows操作系统、数据库。分布在各个工作组的电子看板硬件采用了以arm2440为CPU的开发板。主频400 MHz,软件为linux操作系统。开发板上带有128 M ram、64M Flash、声卡、usbhost、串口等接口。
嵌入式系统构成参见图2所示。
图2 嵌入式开发板硬件结构图
无线网卡采用了rt3070无线网卡接入:USB接口。摄像头为USB接口。嵌入式系统带有声卡、串口等接口。其中串口和IC卡读卡器相连,获取IC卡信息通过无线网络传送到上位机,通过数据库信息认证并记录相应时间。
各个组根据距离远近布置无线网络。如图3所示,实线部分为工厂有线网络,虚线部分为无线网络。
图3 网络布线图
下位机采集现场数据、视频实时向汇总看板传输,并可以通过声卡传送实时声音数据。
2 上位机程序设计
语音传输采用单声道,16位,8 000 Hz采样频率,每秒采集数据16 k.上位机程序使用delphi编写,调用windowsAPI-WaveInOpen函数打开设备。并设置:
调用waveInAddBuffer获取声音数据,得到的声音数据采用自适应差分脉冲编码调制。该算法中对量化步长的调整使用了简单的映射方法,对于一个输入的PCM值X(n),将其与前一时刻的X(n-1)预测值做差值得到d(n),然后根据当前的量化步长对d(n)进行编码,再用此sample点的编码值调整量化步长,同时还要得到当前sample点的预测值供下一sample点编码使用。通过此算法可将样点编码成4bit的码流,一个符号位和3个幅度位。该算法编解码简单只进行相减、查表运算。对CPU要求不高。
压缩的数据通过idudpclient控件传输。参考代码如下:
idudpclient 1.host:=IP
idudoclient 1.PORT:=PORT
idudoclient 1.SendBuffer
idudpclient控件brodcastenable属性可以打开广播。采用广播方式,所有下位机都可以接收到上位机发出的数据包。
Delphi使用IdUDPServer控件监听端口读取下位机声音数据,解码调用waveOutOpen(),waveOutPrepareHeader(),wave()utWrit()播放声音。程序流程参如图4所示。
图4 上位机声音采集及传输流程图
3 下位机程序设计
下位机为分布在生产线或者车间内的管理看板。采用linux操作系统。Linux操作系统下把硬件作为一个设备文件。文件位于dev目录下,文件名为dsp,读取声音使用read函数,播放使用write函数。下位机软件同样启动两个线程一个监听相应的端口获取压缩后的声音数据并解压播放,另外一个线程采集声卡数据压缩后传送。
1)首先打开设备文件:
fd=open("/dev/dsp",oflag);设置采样位数、频率等。
2)建立线程1:pthread_create.
建立udp网络连接sockfd()
读取声卡:
read(fd,inbuf,sizeof(inbuf));
3)adpcm编码并传输
4)建立线程2
建立udp网络连接监听端口,获取网络数据,解压缩。
写入声卡设备:
write(fd,outbuf,sizeof(outbuf));
程序流程参如图5所示。
图5 下位机程序框图
结论
通过实践,新型管理看板能实时、准确的反映现场的情况。改善了生产及管理信息传递性,并且改善了传统监控的模式,看板安装方便,无须考虑布线可以根据已有的无线路由自适应组网。此外声音广播及上下位机实时语音通话方便了管理人员及操作人员。