基于USB息线的多路电话录音系统

[10-10 20:38:44]   来源:http://www.88dzw.com  电子制作   阅读:8690

文章摘要: 录音盒内部为以C8051F320微控制器芯片为核心的单片机系统;通过USB电缆与主机连接;微控制器芯片的P0~P3四个端口用于输入电话线路产生的直流信号,以获取电话线路的状态;P4~P7四个端口用于输入电话线路产生的交流信号,即语音信号,然后通过A/D转换器转换为数宁信号,作为USB传输的录音数据。 系统所采用的A/D转换器为C805lF320微控制器内部集成,具有10位精度,最高采样率可达200ksps。3 系统的软件实现 系统的软件基于Silicon Laboratories公司提供的USBXpress软件开发包开发设计,USBXpress通过动态链接库和库函提供应用程

基于USB息线的多路电话录音系统,标签:电子小制作,http://www.88dzw.com

    录音盒内部为以C8051F320微控制器芯片为核心的单片机系统;通过USB电缆与主机连接;微控制器芯片的P0~P3四个端口用于输入电话线路产生的直流信号,以获取电话线路的状态;P4~P7四个端口用于输入电话线路产生的交流信号,即语音信号,然后通过A/D转换器转换为数宁信号,作为USB传输的录音数据。
    系统所采用的A/D转换器为C805lF320微控制器内部集成,具有10位精度,最高采样率可达200ksps。

3 系统的软件实现
   
系统的软件基于Silicon Laboratories公司提供的USBXpress软件开发包开发设计,USBXpress通过动态链接库和库函提供应用程序接口。由于USBXpress已提供有设备的驱动程序,因而,开发的主要任务是下位机固件程序和上位机应用程序的开发。

3.1 USBXpress软件开发包
    USBXpress软件开发包包括Windows公司设备驱动程序、INF驱动安装文件、主机接口函数库(以WindowsDLL的形式提供)以及设备固件接口函数库。
  
    通过这些主机和设备接口函数,即可方便地进行主机应用程序和设备端固件程序的编制了。

3.2 设备固件程序的实现
   
系统选择Keil C作为固件开发环境,并采用C语言和汇编语言相结合的方式。
    固件程序把有关USB功能的固件设计成完全的中断驱动,ISR(中断服务程序)和后台主程序的数据交换通过事件标志和数据缓冲区来进行。主循环负责初始化I/O口、定时器和中断以及重新连接到USB总线,然后检测事件标志来对各种事件进行处理。其中后台程序采用C51高级语言编写,A/D转换完成中断子程序采用ASM51汇编语言编写。
    固件程序调用USBXpress提供的固件接口函数来实现通过USB传输数据的功能,定义一个中断号为16的中断服务函数以响应USB中断。该ISR以如下形式调用:

   
    固件程序的主要工作是通过A/D转换使接入的4路电话模拟信号转换为数字信号,以便于传输及存储。程序采用定时器0溢出启动A/D转换的方式,依次以一定的采样速率(11 025 kbps)对交流通道(通道l、2、3、4,语音信号)采样,并每间隔一定时间对直流通道(通道5、6、7、8,电话状态)进行采样。A/D转换完成中断子程序用汇编语言编写,其大致框架为:


3.3 上位机应用程序的设计
   
系统选用Visual C++6.0进行上位机应用程序的开发。程序采用多线程的思想,主线程为用户界面线程,负责应用程序与用户的交互;另外开辟一个工作线程,用于USB数据的传输。应用程序首先通过USBXpress提供的接口函数F32x_GetNumDevices()来取得当前连接的USB设备数。然后,根据获得的标识号利用接口函数F32x_Open()打开相应设备,并获得设备的句柄作为USB设备的标识。该句柄在程序巾是独一无二的。这样,就可以调用F32x_Read()和F32x_Write()接口函数来读/写设备,控制数据的传输。为了准确读取录音数据,USBX-press提供了接口函数F32x_CheckRXQueue()来返回设备接收队列中的字节数,以确保录音数据的无差错传输。录音数据以PCM的格式存储在电脑硬盘中。

结语
    该电话录音系统基于Silicon Laboratories公司提供的USBXpress软件开发包开发设计。开发调试简单、快捷,实现了四路电话同时录音,录音清晰,并实现了电话监听功能。通过对基于USB的多路电话录音系统的调试测试,证明了它不仅实现了基本的录音功能,达到了很好的录音效果,而且克服了以往传统方法的缺陷,实现了真正意义上的即插即用,极大地方便了用户使用。

上一页  [1] [2] 


Tag:电子制作电子小制作维修教程知识 - 电子制作