品牌
经销商厂商性质
上海所在地
BENTLY 3500/42M-01-00驱动的实现 DSP驱动实现了音频数据的传输即播放和录音的数据传输。同时提供ioctl对UDA134l中的DAC和ADC采样率进行控制。采样率的控制主要是读写UDAl34l内的采样率控制寄存器,所以驱动的主要部分就是控制音频数据的传输。
BENTLY 3500/42M-01-00驱动中通过结构static audio_state来描述整个音频系统的状态,其中zui主要的是2个数据流结构audio_in和audio_out。这2个数据流结构分别描述输入音频流和输出音频流的信息。通过对audio_in和audio_out的操作分别实现音频的输入和输出(音频的播放和录音),本驱动的主要内容是数据流结构的设计和实现。该结构应该包含音频缓冲区的信息、DMA的相关信息、所用到的信号量及FIFO的入口寄存器的地址。
BENTLY 3500/42M-01-00为了提高系统的吞吐量,系统使用DMA技术直接将需要回放或录制的声音存放在内核的DMA缓存区中,由于S3C2410的DMA控制器没有内置的DMA存储区域,因而驱动程序必须在内存内为音频设备分配DMA缓存区。缓冲区设置是否合理非常关键。以write()函数为例,因为音频数据量通常较大,而缓存太小容易造成缓存溢出,所以要采用较大的缓冲区。而要填充大的缓冲区,CPU就要一次处理大量的数据,这样处理数据时间较长,容易造成延迟。笔者采用多个缓存的机制,将缓冲区分为多个数据段。数据段的个数和大小分别在数据流结构中。这样把大的数据段分为几个小段处理,每处理一小段数据就可以通过DMA发送出去。read函数也是如此,DMA每发来一小段数据就可以处理,不用等到大缓冲区都填满才处理数据。这里还提供了ioctl接口给上层调用,这样上层可以根据音频数据的精度即数据流量来调整缓冲区数据段的大小和个数,以取得的传输效果。
BENTLY 3500/42M-01-00驱动的实现 MIXER驱动只控制混音效果,并不执行读写操作,所以MIXER的文件操作结构只实现了1个ioctl调用,提供给上层设置CODEC的混音效果。驱动中主要实现了1个结构体struct UDAl34l_codec。该结构体描述了CODEC的基本信息,主要是实现了CODEC寄存器的读写函数和混音的控制函数。MIXER文件操作结构中的ioctl就是调用U-DAl341_codec中的混音控制函数来实现的。
4.4 设备的卸载 设备的卸载由注销函数close()来完成。注销函数使用注册时得到的设备号,同时释放驱动程序使用的各种系统资源,如DMA和缓冲区等。
5 结束语 本文介绍了在嵌入式系统中构建基于ⅡS总线的音频系统,实现音频的播放和录音的采集。具体讲述了基于Samsung公司S3C2410型微处理器的CODEC硬件连接的实现及嵌入式Linux下音频驱动的实现。该系统已经在基于S3C2410的开发平台上得到了实现,可以顺利进行音频的播放和采集,并取得良好的效果。
ORIENTAL MOTOR CO.LTD BRAKE PACK SB50 LOT OF 3
MITSUBISHI AC SERVO DRIVE MR-J10A 100W
MOELLER FAZ-3-C50 LOT OF 4
MOELLER FAZ-2-B10(3) FAZ-2-B20(2) LOT OF 5
MOELLER FAZN-C1-2(2) FAZ-2-C63(3) LOT OF 5
WEIDMULLER CONNECTPOWER 8708680000,CP SNT 250W 24V 10A POWER SUPPLY
SMC CYLINDER CDM2B20-60,FULL CDM2B20-60-H7B NOT IN BOX
GSI LUMONICS COPLEY CONTROLS SERVO AMPLIFIER 503 LOT OF 2
ONEAC CORP.TT-0 9505,313-041 REV B 9514 BOARD
TOSHIBA MIG150J202HC,MG100J1BS11,MODULE
ANELVA VACCUM GAUGE TG-550B
SMC VJ3243 Valve LOT OF 2 NEW VJ3243-DIMZ-M5
SMC VJ3243 Valve LOT OF 2 NEW VJ3243-DIMZ-M5
SMC VJ3340Y-5LZ-M5 Valve LOT OF 2 NEW
FCC BOARD ID EUD 5U9 BR14320,PN 4324
FUJI 7MBP75JB060 NIEC MODULE PAH1008CF
STAINLESS STEEL BELLOWS FOR VACUUM LINE. FLANGE TYPE OD.40mm L 580mm,810mm
MOELLER CONTACTOR PKZ 2, ZM-25-PKZ2
SMC PRESSURE SWITCH ISE6B-A2-67L LOT OF 3
SURUGASEIKI KH0604-LM Horizontal plane Z axis crossed roller stage REPAIR PARTS
IKO CRBH9016AUUTI ROLLER BEARING
SGI Hard Drive Seagate ST31200N 950001-046
HP ASSY 82335-6001 REV F BD 82335-80001 INTERFACE CARD
GE FANUC OUTPUT IC693MDL940H-RELAY 2A 16PT
GE FANUC CPU MODULE IC693CPU331Y
OMRON SAFETY RELAY UNIT G9SB-3012-C LOT OF TWO
RORZE 2P MICRO STEP DRIVER RD-021M8 WITH STEPPING MOTOR PK243A1-SG18