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