超低功耗奶牛發情期監測器的設計
一、奶牛發情期監測器的設計背景
奶牛發情期監測器(以下簡稱監測器)的設計啟發主要來自于北威爾士大學附屬學院的克萊夫、非利普斯和安斯爾德博士提出的母牛發情期運動量偏差的研究。在大多數牛群中不用計步器收集發情期母牛的成功率為40%~60%之間,而用計步器試驗(一般發情期母牛一天走7英里,是正常母牛走2~3英里舉例的兩倍以上),現實成功率達90%~100%之間。于是這個研究小組就提出研制自動計算母牛每天活動量的電子計步器,母牛所增加的活動量將啟動計步器,產生一個聲頻信號。【1】監測器自動計量傳感器的信號,通過奶牛每天運動量是否有大幅增加來判斷奶牛是否處于發情期中。
二、奶牛發情期監測器的設計原理
(一)奶牛監測器結構圖
完整的奶牛監測器包括兩個大的組成部分:數據采集/發送模塊和數據接受/轉換模塊。如圖1所示:
圖1:奶牛監測器結構
(二)奶牛監測器中的信號源及數據流分析
(1)信號主要由振動傳感器產生。www.51kaifa.com
(2)數據采集/發送模塊采集母牛運動中產生的信號,軟件累計計數并且將計數結果存儲到寄存器指定位置。將寄存器中的計數結果串行傳輸到TX5000中,進行數據的無線發射(24小時發送一次)。
(3)利用短距離無線發送芯片TX5000,PCB天線通過433.92M赫茲民用波段將數據進行無方向性的自動增益發送。
(4)數據接受/轉換模塊接受TX5000傳送的數據包,并且將數據傳送到單片機中,最后通過RS232數據轉換接口傳輸到PC機上。
(5)數據將載入用戶系統,存儲到后臺數據庫中。用戶隨時可以管理數據庫,調用相關數據。
三、硬件電路分析及PROTEL制圖
(一) MSP430F1121A工作機理
監測器的數據采集/發送模塊是被掛在牛脖子上的,供電源僅有一節干電池。因為更換電池的不便,監測器必然要工作在低功耗模式下(一節干電池的保持系統正常工作期限為10年)。TI公司生產的MSP430F1121A單片機的時鐘系統產生CPU和各功能模塊所需的時鐘,并且這些時鐘可以在指令的控制下打開或者關閉,即只需打開工作模塊的時鐘。這樣單片機的功耗可以大大降低,單片機能在2微瓦的低能耗模式中穩定而準確的保證單片機工作模塊的運轉(一般單片機工作能耗為毫安瓦級)。這也是在監測器的設計中選擇MSP430F1121A的理論根據【2】。本設計中單片機工作在第三種低能耗模式(LMP3)下,外接32766赫茲的時鐘晶振【3】。利用MSP430F1121A內部16為定時器Timer_A中的捕捉/比較模塊CCR0的捕捉功能進行計步。
分析CCR0控制寄存器,如圖所示:
15 14 | 13 12 | 11 | 10 | 9 | 8 | 7 6 5 | 4 | 3 | 2 | 1 | 0 |
CAPTMOD1-0 | CCISI-0 | SCS | SCCIx | CAP | OUTMODx | CCIEx | CCIx | OUT | COV | CCIFGx |
圖2:CCTLx 捕捉/比較模塊
對于本設計中必要的初始化進行說明,選擇捕捉模式(CAPTMOD1-0)設置為01,即選擇上升沿捕捉;捕捉模式中定義提供捕捉事件的輸入源(CCIS1-0)設置為CCI0A,即選擇Timer_A的第一個捕捉器;選擇捕捉信號與定時時鐘同步、異步關系設置為1,即同步捕捉,根據是此時捕捉器反復捕捉脈沖上升沿總是有效;選擇/捕捉模式(CAP)設置為1,即捕捉模式;中斷允許位(CCIEx)設置為1,即允許中斷,這也是計步子程序的入口;溢出標志(COV)設置為1,根據時通常情況下母牛一天的運動量不會達到溢出水平量0xFFFF。Timer_A有中斷標志時,選擇捕捉器 1CCIFG1后,TAIV中的值為2,PC+2后轉入累加子程序,即捕捉到了一個上升沿(母牛走動了一步)。中斷返回后重新掃描信號源的脈沖。www.51kaifa.com
(二)TX5000發送機理
TX5000具有兩種數據發送模式:OOK模式和ASK模式。在OOK工作模式中,信號輸出端以通斷脈沖來表示信號“1”和“0”;而在ASK工作模式中,輸出信號則分別以高、低電平來表示信號“1”和“0”;休眠模式的信號端通常被置于高阻狀態【4】。OOK模式的功耗較低,但數據傳輸率也低(10kbps);ASK模式的功耗較高,但數據傳輸率也較高(115.2kbps)。由于在ASK模式時,信號可調幅,因此抗干擾能力也較強,本設計同樣采用了ASK工作模式。發送芯片大部分時間處于休眠狀態,每天發送數據的時候激活進入發送模式,以保證低功耗的實現。
(三)PROTEL硬件電路圖
由于本文主要討論的是監測器的計步環節,因此給出了部分的硬件電路圖。如圖3所示:
圖3:計步器硬件設計電路圖
三、串行通訊程序
文中的數據流進行串行傳輸的部分核心程序如下所示【5】:
程序初始化階段(省略)
void main (void)
{WDTCTL = WDTPW + WDTHOLD;
CCTL0 = OUT;
TACTL = TASSEL0+MC1;
P1SEL = TXD;www.51kaifa.com
P1DIR = TXD;
P1SEL = RXD;
_EINT();
for (;;)
{RX_Ready();
_BIS_SR(CPUOFF + GIE);
TX_Byte();}}
兩個子程序結構(省略)
五、總結
本次設計由于產品本身的特點,需要低功耗運作,成功的應用了TI公司的單片機的低功耗模式進行運作管理,并且突破了單片機捕捉器的應用局限,利用特殊中斷使能入口進行軟件計數。在整個產品的研發過程中,解決了關鍵性的母牛運動計數問題。成功實現了帶有緩存(BUFFWER)的串行數據傳輸[6]。為進一步研究做好鋪墊工作。
本文作者創新點:突破了單片機捕捉器的應用局限,擴展了MSP430F1121A中Timer_A的捕捉/比較模塊以往僅僅測量軟件程序、硬件事件之間的時間、系統頻率的功能。利用特殊中斷使能入口進行軟件計數。成功的將高精度計步器技術應用到奶牛養殖業中來,這在國內寥寥無幾,國際上也是處于領先水平。計步器超低功耗的特點讓整個設計在實際應用中變的異常方便。
參考文獻:
[1] 英國《觀察報》,98。6。
[2] The Data Sheet of MSP430x11x1, MSP430F11x1A Mixed Signal Microcontrollers (Rev. H)
[3] MSP430系列16位超低功耗單片機原理與應用,沈建華,楊艷琴等主編。——北京:清華大學出版社,2004.11.
[4]The Data Sheet of TX5000 433.92 MHz Transmitter 9.5x11mm packagewww.51kaifa.com
[5] MSP430單片機應用系統開發典型實例,秦龍主編。中國電力出版社,2005.7.
[6] NAND Flash 在MSP430嵌入式系統中的應用,余靖娜等,微計算機信息 2007年第1-2期。
評論