新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種智能無線多媒體數字播放系統的設計方案

        一種智能無線多媒體數字播放系統的設計方案

        作者: 時間:2011-07-12 來源:網絡 收藏

          3 點播的實現

          微處理器S3C2440A和芯片CYWUSB6934之間通過SPI接口進行通信,在Linux中兩者之間的通信就必須通過SPI驅動程序來實現。而點播則是在用戶啟動Linux中的點播程序時,識別接收到的數據后,自動調用音視頻文件進行

          3.1 SPI驅動

          在Linux操作系統中,所有外圍設備的控制都是通過驅動程序實現的,設備驅動程序是操作系統內核與機器硬件之間的接口。

          SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串行外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要應用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有信號處理器和信號解碼器之間。SPI,是一種高速的,全雙工,同步的通信總線,并且在芯片的管腳上只占用四根線,節約了芯片的管腳,同時為PCB的布局上節省空間,提供方便,正是出于這種簡單易用的特性,現在越來越多的芯片集成了這種通信協議。手持終端需要通過SPI接口控制無線收發芯片,這就需使用SPI接口驅動程序來建立無線收發芯片與內核之間的通信橋梁。SPI接口以主從方式進行工作,其接口包括4種信號:(1)MOSI:主器件數據輸出,從器件數據輸入;(2)MISO:主器件數據輸入,從器件數據輸出;(3)SCLK:時鐘信號,由主器件產生;(4)/SS:從器件使能信號,由主器件控制。

          圖2為S3C2440A與CYWUSB6934之間SPI接口的連接圖。圖中nSS控制CYWUSB6934作為從器件,SPIMOSI和SPIMISO是它們之間的數據傳輸通道,SPICLK為時鐘信號。當SPI作為主控制器時,由SPPRE寄存器中相應的比特位控制。而當SPI為從設備時,時鐘信號則是由其他設備提供。某些情況下,在將數據寫入SPTDAT寄存器之前,nSS應該被置為高電平。在本系統中主要用到的S3C2440A內部與SPI相關的寄存器如下:

          (1)SPCON寄存器:主要用于設置時鐘開啟、SPI傳輸格式、SPI傳輸模式。其中傳輸模式有3種,分別是polling模式、DMA模式、中斷模式。

          (2)SPSTA寄存器:SPI接口的狀態寄存器,用于指示數據接收或發送是否已經完成。

          (3)SPPIN寄存器:用于檢測是否有多個主機。

          (4)SPPRE寄存器:用于設置SPI傳輸時鐘頻率。其值通過如下計算式確定:

          Baud rate=PCLK/2/(Prescaler value+1)

          其中Prescaler value的初始值為0x00。

          (5)SPTDAT和SPRDAT寄存器:發射和接收數據寄存器。

          在Linux系統啟動時,要對以上寄存器進行賦值,就必須通過SPI驅動程序。而驅動程序就是作為系統和外部設備的一個橋梁,在這里只有將SPI通道正確打開,系統才能夠通過這個橋梁對外部無線芯片的基本工作寄存器進行操作,完成數據的收發。

          Linux中的I/O子系統向內核中的其他部分提供了一個統一的標準設備接口,這是通過include/linux/fs.h中的數據結構file_operations完成的[11]。圖3所示為本系統中SPI驅動設備描述符函數組成框圖。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灌阳县| 射洪县| 天峨县| 三门县| 宜章县| 松江区| 盈江县| 钟祥市| 石嘴山市| 霸州市| 鲁山县| 汕头市| 米泉市| 定陶县| 福安市| 资源县| 唐河县| 连云港市| 桂阳县| 惠安县| 靖江市| 孟津县| 行唐县| 隆德县| 天等县| 开封市| 马公市| 砚山县| 隆回县| 万荣县| 合江县| 仪征市| 定边县| 和林格尔县| 鞍山市| 莲花县| 宝兴县| 永胜县| 察雅县| 壶关县| 松原市|