智能無線抄表系統(tǒng)中CC1101的WinCE驅(qū)動開發(fā)
摘要:為了在智能遠傳抄表系統(tǒng)中實現(xiàn)基于無線通訊芯片CC1101的無線跳傳網(wǎng)絡(luò)通信,根據(jù)CC1101的SPI接口特性,采用流接口技術(shù),利用ARM920T處理器S3C2410在WinCE 5.0下編寫SPI驅(qū)動程序控制CC1101,實現(xiàn)了無線跳傳網(wǎng)絡(luò)通信,并在智能遠傳抄表系統(tǒng)中測試了基于CC1101的無線跳傳網(wǎng)絡(luò)通信。結(jié)果表明,該驅(qū)動能很好地運行在WinCE 5.0平臺上,利用CC1101有效的實現(xiàn)了無線跳傳網(wǎng)絡(luò)通信。
關(guān)鍵詞:WinCE 5.0;S3C2410;SPI驅(qū)動;CC1101
0 引言
隨著經(jīng)濟技術(shù)的不斷發(fā)展,以及自動化程度的提高,越來越多的場合需要用到遠程控制。在承接的國家大學生創(chuàng)新性實驗計劃項目——基于無線跳傳網(wǎng)絡(luò)的智能抄表系統(tǒng)中,中繼(SINK)模塊,即采用S3C2410在WinCE下驅(qū)動射頻芯片CC1101作手持終端控制器。其中,在WinCE下驅(qū)動CC1101成為該項目的一個難點。CC1101使用SPI通信,而SPI驅(qū)動屬于WinCE串口驅(qū)動的一種,是流驅(qū)動。本文將介紹WinCE 5.0下,C11 01的SPI驅(qū)動程序設(shè)計。
1 CC1101的SPI接口特性
CC1101基于TI公司的0.18 μm CMOS晶體SmartRF04技術(shù),是一種低成本、真正單片的UHF收發(fā)器,為低功耗無線應用而設(shè)計。電路主要設(shè)定在315 MHz,433 MHz,868 MHz和915 MHz的ISM(工業(yè),科學和醫(yī)學)和SRD(短距離設(shè)備)頻率波段,CC1101的主要操作參數(shù)和64位發(fā)送/接收FIFO可通過SPI接口控制,具有14個命令寄存器,47個普通配置寄存器和12個狀態(tài)寄存器,通過4線SPI兼容接口(SI,SO,SCLK和CSn)配置。其中,SPI接口是一種同步串行通信接口,CSn是芯片選擇管腳,當該管腳為低電平時,SPI接口可以通信;SI和SO為數(shù)字傳輸管腳,SI用于數(shù)據(jù)輸入,SO用于數(shù)據(jù)輸出;SCLK為同步時鐘,在時鐘的上升沿數(shù)據(jù)被寫入或讀出。CC1101中SPI接口的讀/寫操作方式如圖1所示。
CC1101的配置、命令發(fā)布和發(fā)射接收緩存的數(shù)據(jù)讀取都通過SPI完成,SPI的操作都由主機控制,對CC1101來說,主機的控制操作即是發(fā)送的headerbyte。下面介紹兩種主要狀態(tài)下的主機操作。
(1)讀寄存器、讀狀態(tài)
①寫入頭字節(jié)(R,0/1,address);
②dummy write為從設(shè)備提供一個CLK,從SPI接收數(shù)據(jù)即讀出address的數(shù)據(jù)。如果是突發(fā)訪問n個寄存器,則重復n次。
(2)寫寄存器、寫命令
①寫入頭字節(jié)(W,0/1,address);
②寫入數(shù)據(jù)字節(jié)(data)。如果是突發(fā)訪問n個寄存器,則重復n次。
由于ARM的SPI硬件操作屏蔽了對CLK的直接控制,讀的時候必須要dummy write為從設(shè)備提供一個CLK,可以寫0xFF。在每次寫前要確保SPI空閑,并且沒有發(fā)生溢出,寫后要確保發(fā)送完畢,再進行其他SPI操作。
評論