收音機(jī)作為接收廣播的工具,經(jīng)過(guò)漫長(zhǎng)的發(fā)展過(guò)程,由單波段發(fā)展到多波段,由電子管,晶體管發(fā)展到集成電路,由機(jī)械調(diào)諧發(fā)展到數(shù)字調(diào)諧功能等,其技術(shù)和品質(zhì)都有了長(zhǎng)足的進(jìn)步。如今,在收音機(jī)這個(gè)家族中新的成員也在不斷加入,如衛(wèi)星廣播接收機(jī)等。當(dāng)社會(huì)進(jìn)入網(wǎng)絡(luò)時(shí)代后,更是出現(xiàn)了網(wǎng)絡(luò)收音機(jī)這種跨越全球的信息接收設(shè)備。但是,目前這種網(wǎng)絡(luò)收音機(jī)大多是通過(guò)基于PC機(jī)上的軟件開(kāi)發(fā)來(lái)實(shí)現(xiàn)的其功能的,也就是說(shuō)這種網(wǎng)絡(luò)收音機(jī)不能脫離電腦這種相對(duì)比較大的和比較昂貴的設(shè)備。
為了克服PC機(jī)形式的網(wǎng)絡(luò)收音機(jī)的缺點(diǎn),本文研究了一種基于ARM的嵌入式技術(shù)的網(wǎng)絡(luò)收音機(jī)的設(shè)計(jì)方案。該方案以ARM處理器及其外圍模塊作為硬件平臺(tái),以嵌入式Linux作為操作系統(tǒng),以Mplayer作為網(wǎng)絡(luò)播放軟件,再配合設(shè)計(jì)的用戶(hù)應(yīng)用程序,共同實(shí)現(xiàn)了嵌入式網(wǎng)絡(luò)收音機(jī)的全部功能。這種設(shè)計(jì)方法在網(wǎng)絡(luò)收音機(jī)的設(shè)計(jì)史上是一個(gè)創(chuàng)新。同時(shí),隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,該設(shè)計(jì)將具有極好的市場(chǎng)應(yīng)用前景。
1系統(tǒng)的結(jié)構(gòu)及工作原理
系統(tǒng)的層次結(jié)構(gòu)如圖1所示。系統(tǒng)以S3C2410及其外圍電路為硬件平臺(tái),以嵌入式Linux和設(shè)備驅(qū)動(dòng)程序作為系統(tǒng)的軟件平臺(tái),為上
層Mplayer播放器和用戶(hù)應(yīng)用程序提供用戶(hù)接口支持[1]。在這三層結(jié)構(gòu)的支持下,共同來(lái)實(shí)現(xiàn)嵌入式網(wǎng)絡(luò)收音機(jī)的全部功能。
圖1 系統(tǒng)層次結(jié)構(gòu)圖
系統(tǒng)的硬件結(jié)構(gòu)框圖如圖2所示。本系統(tǒng)選用的ARM處理器是Sumsing(三星)公司的一款A(yù)RM9系 列的芯片,型號(hào)為S3C2410。網(wǎng)卡芯片采用的是CirrusLogic公司的一顆網(wǎng)絡(luò)處理芯片CS8900。FLASH芯片采用的是 K9F5608,用來(lái)存儲(chǔ)啟動(dòng)引導(dǎo)程序U-boot、內(nèi)核及文件系統(tǒng),SDRAM芯片采用的是HY57V281620,作為該系統(tǒng)的內(nèi)存。16*4的字符 型液晶顯示模塊用來(lái)顯示網(wǎng)絡(luò)電臺(tái)、音頻文件名等相關(guān)信息。音頻D/A轉(zhuǎn)換芯片選用的是飛利浦公司的UDA1341芯片,該芯片具有IIS接口,可以方便的 與S3C2410連接。
圖2 系統(tǒng)硬件結(jié)構(gòu)框圖
系統(tǒng)在Linux提供的TCP/IP協(xié)議的支持下,通過(guò)應(yīng)用程序和Mplayer控制,經(jīng)過(guò)網(wǎng)卡連接到internet上指定的網(wǎng)絡(luò)電臺(tái)服務(wù) 器,下載網(wǎng)絡(luò)電臺(tái)列表。系統(tǒng)支持在按鍵的控制下的網(wǎng)絡(luò)電臺(tái)選擇和LCD上顯示電臺(tái)信息等功能。Mplayer解析出選中的電臺(tái)的IP地址后,再連接到要收 聽(tīng)的電臺(tái)的網(wǎng)站,系統(tǒng)便可以接收并解析出該網(wǎng)站發(fā)出的流媒體數(shù)據(jù)。系統(tǒng)將接收到的流媒體數(shù)據(jù)保存到SDRAM中。之后,經(jīng)過(guò)Mplayer的解碼,送到音 頻D/A轉(zhuǎn)換芯片,即可收聽(tīng)到該網(wǎng)絡(luò)電臺(tái)播放的聲音等信息。
2 系統(tǒng)的硬件設(shè)計(jì)
2.1 S3C2410
本系統(tǒng)的硬件核心平臺(tái)采用的是Samsung 公司的處理器S3C2410。該處理器內(nèi)部集成了ARM 公司ARM920T 處理器核的32 位微控制器,資源豐富,帶獨(dú)立的16KB 的指令Cache 和16KB 數(shù)據(jù)Cache、MMU虛擬內(nèi)存管理單、LCD 控制器、RAM控制器、NAND 閃存控制器、3 路UART、4路DMA、4 路帶PWM的Timer、并行I/O 口、8 路10 位ADC、Touch Screen 接口、I2C 接口、I2S 接口、2 個(gè)USB接口控制器、2 路SPI,主頻最高可達(dá)203MHz[2]。其內(nèi)部結(jié)構(gòu)如圖3所示。
圖3 S3C2410內(nèi)部結(jié)構(gòu)圖
2.2 網(wǎng)絡(luò)接口
系統(tǒng)的網(wǎng)卡芯片采用Cirrus Logic公司的一種局域網(wǎng)處理芯片CS8900,該芯片內(nèi)部集成了RAM、10BASE-T收發(fā)濾波器,并且提供8位和16位兩種接口。其片選信號(hào)連接 到S3C2410的nGCS1,因此網(wǎng)卡的地址空間映射到0X08000000~0X0FFFFFFF。在Linux內(nèi)核中,一般都含有CS8900的驅(qū) 動(dòng)程序,使用時(shí)只需修改驅(qū)動(dòng)與處理器的地址映射關(guān)系,并在配置內(nèi)核的Device Driver選項(xiàng)中,選中CS8900項(xiàng)。
2.3 SDRAM存儲(chǔ)器
本設(shè)計(jì)的SDRAM采用的是HY57V281620芯片。該芯片是一個(gè)數(shù)據(jù)寬度為16BIT,容量為16M字節(jié)的SDRAM。HY57V281620與S3C2410的連接圖如圖4所示。
圖4 HY57V281620電路圖
HY57V281620的ncs引腳接到處理器的nGCS6。由于在處理器的存儲(chǔ)空間中,字節(jié)是存儲(chǔ)容量的唯一單位。而HY57V281620 的數(shù)據(jù)寬度為16位,它的每一個(gè)存儲(chǔ)單元都包含2個(gè)字節(jié)。因此HY57V281620的A0引腳接到了S3C2410處理器的地址線ADDR01上面。 HY57V281620的容量為16MB,因此它需要ADDR00~ADDR23共24跟地址線來(lái)尋址,所以,BA0~BA1引腳應(yīng)該接到 ADDR22~ADDR23地址線上。
3 系統(tǒng)的的軟件設(shè)計(jì)
3.1 嵌入式Linux的移植
評(píng)論
查看更多