嵌入式網絡收音機的ARM實現
收音機作為接收廣播的工具,經過漫長的發展過程,由單波段發展到多波段,由電子管,晶體管發展到集成電路,由機械調諧發展到數字調諧功能等,其技術和品質都有了長足的進步。
本文引用地址:http://www.104case.com/article/150437.htm如今,在收音機這個家族中新的成員也在不斷加入,如衛星廣播接收機等。當社會進入網絡時代后,更是出現了網絡收音機這種跨越全球的信息接收設備。但是,目前這種網絡收音機大多是通過基于PC機上的軟件開發來實現的其功能的,也就是說這種網絡收音機不能脫離電腦這種相對比較大的和比較昂貴的設備。為了克服PC機形式的網絡收音機的缺點,本文研究了一種基于ARM的嵌入式技術的網絡收音機的設計方案。
該方案以ARM處理器及其外圍模塊作為硬件平臺,以嵌入式Linux作為操作系統,以Mplayer作為網絡播放軟件,再配合設計的用戶應用程序,共同實現了嵌入式網絡收音機的全部功能。這種設計方法在網絡收音機的設計史上是一個創新。同時,隨著網絡技術的高速發展,該設計將具有極好的市場應用前景。
本文作者創新點:
1、首次提出了用嵌入式技術設計網絡收音機的系統設計方案,極具創新特點。
2、實現了Mplayer軟件在Linux系統平臺下向ARM9的移置。
1系統的結構及工作原理
系統的層次結構如圖1所示。系統以S3C2410及其外圍電路為硬件平臺,以嵌入式Linux和設備驅動程序作為系統的軟件平臺,為上層Mplayer播放器和用戶應用程序提供用戶接口支持[1]。在這三層結構的支持下,共同來實現嵌入式網絡收音機的全部功能。

圖1 系統層次結構圖
系統的硬件結構框圖如圖2所示。本系統選用的ARM處理器是Sumsing(三星)公司的一款ARM9系列的芯片,型號為S3C2410。網卡芯片采用的是Cirrus Logic公司的一顆網絡處理芯片CS8900。FLASH芯片采用的是 K9F5608,用來存儲啟動引導程序U-boot、內核及文件系統,SDRAM芯片采用的是HY57V281620,作為該系統的內存。16*4的字符型液晶顯示模塊用來顯示網絡電臺、音頻文件名等相關信息。音頻D/A轉換芯片選用的是飛利浦公司的UDA1341芯片,該芯片具有IIS接口,可以方便的與S3C2410連接。

圖2 系統硬件結構框圖
系統在Linux提供的TCP/IP協議的支持下,通過應用程序和Mplayer控制,經過網卡連接到internet上指定的網絡電臺服務器,下載網絡電臺列表。系統支持在按鍵的控制下的網絡電臺選擇和LCD上顯示電臺信息等功能。Mplayer解析出選中的電臺的IP地址后,再連接到要收聽的電臺的網站,系統便可以接收并解析出該網站發出的流媒體數據。系統將接收到的流媒體數據保存到SDRAM中。之后,經過Mplayer的解碼,送到音頻D/A轉換芯片,即可收聽到該網絡電臺播放的聲音等信息。
2 系統的硬件設計
2.1 S3C2410
本系統的硬件核心平臺采用的是Samsung 公司的處理器S3C2410。該處理器內部集成了ARM 公司ARM920T 處理器核的32 位微控制器,資源豐富,帶獨立的16KB 的指令Cache 和16KB 數據Cache、MMU虛擬內存管理單、LCD 控制器、RAM控制器、NAND 閃存控制器、3 路UART、4路DMA、4 路帶PWM的Timer、并行I/O 口、8 路10 位ADC、Touch Screen 接口、I2C 接口、I2S 接口、2 個USB接口控制器、2 路SPI,主頻最高可達203MHz[2]。其內部結構如圖3所示。

圖3 S3C2410內部結構圖
2.2 網絡接口
系統的網卡芯片采用Cirrus Logic公司的一種局域網處理芯片CS8900,該芯片內部集成了RAM、10BASE-T收發濾波器,并且提供8位和16位兩種接口。其片選信號連接到S3C2410的nGCS1,因此網卡的地址空間映射到0X08000000~0X0FFFFFFF。在Linux內核中,一般都含有CS8900的驅動程序,使用時只需修改驅動與處理器的地址映射關系,并在配置內核的Device Driver選項中,選中CS8900項。
2.3 SDRAM存儲器
本設計的SDRAM采用的是HY57V281620芯片。該芯片是一個數據寬度為16BIT,容量為16M字節的SDRAM。HY57V281620與S3C2410的連接圖如圖4所示。

圖4 HY57V281620電路圖
HY57V281620的ncs引腳接到處理器的nGCS6。由于在處理器的存儲空間中,字節是存儲容量的唯一單位。而HY57V281620的數據寬度為16位,它的每一個存儲單元都包含2個字節。因此HY57V281620的A0引腳接到了S3C2410處理器的地址線ADDR01上面。 HY57V281620的容量為16MB,因此它需要ADDR00~ADDR23共24跟地址線來尋址,所以,BA0~BA1引腳應該接到ADDR22~ADDR23地址線上。
linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
波段開關相關文章:波段開關原理
評論