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