- MCU工程師煉成記:我和MSP430單片機
- 丁武鋒 莊嚴 周春陽 編著
- 3206字
- 2018-12-31 23:36:09
1.1 把iPhone變成一臺心電圖儀
今天,每個人都有一部手機,這部手機可能是iPhone,也可能是Android手機,還有可能是Windows手機。無論是哪一種智能手機,其實都是一款功能強大的開發平臺,吸引了眾多的軟件應用開發者。面對這樣一個平臺,我們是否可以換個思路,不局限于設計各種軟件應用,而是再添加一些硬件外設,做出更大膽的功能拓展。答案是肯定的!
圖1-1展示iPhone心電圖儀,只增加少量的硬件外設就把一部iPhone變成了一臺心電圖儀。

圖1-1 iPhone心電圖儀
下面我們來看看如何一步一步實現將一部iPhone變成便攜式心電圖儀。首先要考慮的問題是,增加的硬件外設如何與iPhone相連。iPhone提供給外界的接口是它獨特的數據接口以及耳機接口,其他的手機一般可以提供USB接口和耳機接口。因此,實際上在手機上最通用的接口是耳機接口,而不是各種數據接口。

圖1-2 iPhone耳機接口的定義
讓我們看看手機上的耳機接口的定義,看看它能否完成硬件外設與手機通信的功能。耳機接口有4個信號線,分別是左聲道、右聲道、接地和麥克風,如圖1-2所示。接口中各信號的方向是固定的,左聲道和右聲道用于驅動耳機,所以對于手機就是輸出;麥克風是采集語音信號的,所以對于手機其方向為輸入。總體上講,手機耳機孔接口提供了兩個輸出通道和一個輸入通道,可以滿足手機和硬件外設的雙向通信的要求。
如果使用耳機接口作為外設電路與iPhone之間唯一的連接,那么電路必須從耳機接口取電,也就是需要依靠音頻芯片輸出的能量來驅動電路。
iPhone的音頻輸出功率有多大呢?是否能夠驅動外部電路呢?帶著這些疑問,可以先測試iPhone手機一個聲道的輸出功率。圖1-3是利用iPhone 3GS輸出20~20KHz的信號在不同的負載阻抗下測試得到的輸出電壓有效值和輸出電流以及輸出功率的關系。其中拋物線形的曲線是輸出電壓與輸出功率的關系,帶圈的曲線是輸出電流與輸出電壓的對應關系。輸出功率在輸出電壓為240mV的時候達到峰值,這個時候輸出功率達到15.6mW,輸出電流約為66mA。

圖1-3 iPhone 3GS單聲道輸出電壓與輸出電流及功率的關系
音頻輸出的最高功率達到15.6mW,如果能夠設計出低功耗的電路,這個功率能夠支撐電路工作。有了能量保障,采集心電信號需要哪些功能電路呢?
心電信號非常微弱,而且受到的干擾非常嚴重,直接采集會淹沒在噪聲之中,所以必須設計降噪放大電路完成心電信號的調理。心電信號從模擬域到數字域的轉換,就需要數模轉換器來完成。除此以外,還希望電路具備一定的數字處理能力,完成心電信號的預處理以及與iPhone的通信。綜合以上這些要求,可以選擇一款具備數模轉換等功能的低功耗單片機。
提到低功耗單片機,就會讓人想起一款經常使用水果電池供電做演示超低功耗單片機——MSP430單片機。MSP430單片機很長時間以來一直作為低功耗單片機的標桿產品,那么它的功耗到底有多低呢?
可以做一個計算,假如使用3V的銀鋅紐扣電池CR2032供電,電池的容量為200mAh。單片機使用MSP430F20xx系列,在看門狗工作的待機模式下其消耗電流為0.6μA,在CPU工作頻率為1MHz的活動模式下消耗電流為300μA。在實際的低功耗應用中,單片機一般情況下處于待機模式,中斷請求到達時被喚醒,處理完中斷請求后再次進入待機模式。因此,單片機在大部分狀態下都處于待機模式,下面分別以1%和0.1%的工作時間對其進行評估。
工作時間為1%的情況下,電流消耗的平均值為:
Iavg=06.μA×0.99+300μA×0.01=3.594μA
工作時間為:
工作時間為0.1%的情況下,電流消耗的平均值為:
Iavg=0.6μA×0.999+300μA×0.001=0.8994μA
工作時間為:
MSP430單片機在1%和0.1%的工作時間下,工作時間分別達到了6.34年和25年,其低功耗的特性也得到了充分體現。
MSP430單片機除了低功耗的特點,還有哪些特征呢?
MSP430經過多年的發展已經有超過450個型號,相互之間具備非常好的兼容性。MSP430大部分器件工作電壓在1.8~3.6V,低的工作電壓可以方便使用在單節電池供電的環境中。平均工作電流為200μA/MIPS,最高CPU工作頻率可以達到25MHz。提供MCLK、SMCLK和ACLK3個時鐘系統,具備5種低功耗模式。片上外設非常強大,具備數字和模擬兩大類外設。數字外設包括數字I/O口,具備捕獲和比較功能的定時器,支持UART、I2C和SPI的硬件串行接口,USB接口,DMA,硬件乘法器,看門狗,RTC等數字外設。模擬外設主要包括10位ADC、12位ADC、16位SD、24位SD、12位D/A、模擬比較器、電源監測BOR,運算放大器OPA等。可以根據具體應用選擇所需要的外設,進而選取對應型號的MSP430單片機。
豐富的外設能夠幫助簡化電路的設計,但是會不會引起MSP430功耗的上升呢?在實際應用中可能用不到所有的外設,MSP430可以選擇關閉不使用的外設,這樣就避免了功耗上升的風險。
制作iPhone心電圖儀的硬件外設選用了MSP430F1611單片機。有了低功耗的單片機,下面來看看整個外設電路如何實現。
第一步實現能量的采集,從圖1-3中的曲線數據可以知道輸出電壓有效值為240mV時,音頻輸出功率最大,這個時候負載阻抗為240mV的電壓較低,需要升壓才能作為單片機的供電電壓。但是240mV的電壓還不足以讓boost升壓電路工作。必須使用一種有效的升壓方式,音頻信號為交流信號,因此可以采用如圖1-4所示的變壓器電路,利用1:20的變壓器將音頻信號升壓。

圖1-4 升壓整流電路
為達到高效的能量傳輸,負載和音頻源端輸出阻抗匹配。已知源端阻抗為3.6Ω,變壓器初級線圈的電感為25μH,就可以根據電感的感抗計算公式獲得最佳的音頻頻率。
如圖1-4所示使用右聲道傳輸能量,那么最佳的音頻頻率為22.9KHz。由于變壓器還有約為0.2Ω的直流電阻,升壓后電壓約為4.2V。然后經過MOS管組成的整流電路,將電壓變為直流信號。采用MOS管做直流整流電路,原理上與常見的二極管全波整流電路相似,但是具備更低的管壓降,所以效率更高。整流濾波后的直流信號約為4V,MSP430的供電電壓可以選定為3V,所以最后還需要降壓電路。該降壓電路最好選用DC-DC降壓電路,以取得較高的效率。
獲得了電源,還要完成單片機電路和心電信號的調理電路,心電信號調理電路會在后面的章節中詳細介紹。下面再看MSP430是如何完成與iPhone通信的。iPhone的耳機接口中右聲道已經被用作供給能量,就剩下左聲道和麥克風。左聲道可以用作iPhone向MSP430傳輸數據,而麥克風可以用作MSP430向iPhone傳輸數據。MSP430和iPhone之間都是交流耦合,所以直接傳輸數字電平信號是行不通的。這里可以借用無線傳輸中的一種方式,通過FSK調制傳輸數據,簡單來說就是將數字信號調制到一個更高的載波信號上,數字信號的0和1分別用不同頻率的載波信號,根據接收到的載波頻率可分為0和1。看似困難的調制與解調過程可以依賴于MSP430的片上外設輕松完成。
完成FSK調制,需要使用到MSP430的I/O口中斷,通用異步、同步收發器UASRT,定時器的比較輸出功能。整個過程除了一處簡單的電路連接,其他的過程都可以編程實現。FSK的調制的實現過程如圖1-5所示。

圖1-5 MSP430實現FSK調制
單片機與iPhone之間完成的異步通信,可以將片上外設UASRT的配置為UART接口來實現,需要發送的數據直接寫入UASRT既能夠自動封裝為符合串口標準的數據格式。接著將UASRT的輸出管腳TXD輸出的信號接至片上具備I/O口中斷功能的I/O口管腳,P1端口和P2端口的各8個管腳都可以選用。I/O口管腳發現TXD管腳的電平變化就會發生中斷,并在中斷中修改定時器的定時周期,進而輸出不同頻率的PWM信號,輸出的PWM信號如圖1-6所示。

圖1-6 FSK調制波形
由于iPhone和MSP430之間是交流耦合,所以PWM信號經過低通濾波并隔離直流分量,輸出至麥克風接口被手機采集。手機具備很強的數值計算能力可以利用軟件無線電算法處理采集到的FSK信號并解調出MSP430發送的數字信號。
由iPhone發往MSP430的調制信號,也可以充分利用片上外設解調,實現框圖如圖1-7所示。

圖1-7 MSP430實現FSK解調
iPhone左聲道傳輸的FSK信號也是交流信號,先使用電阻分壓電路將該信號抬升至中點電平,即1/2VCC。利用MSP430片上的模擬電壓比較器,將輸入的信號與1/2VCC進行比較,比較后的信號交由定時器進行捕獲計數,測量FSK信號的周期。最終CPU根據信號周期判決解調出數字信號,解調波形如圖1-8所示。

圖1-8 FSK解調波形
通過以上方法就可以解決供電和通信兩大難題,再配合iPhone上的應用軟件就能夠成功地將一部手機轉換為心電圖儀。
從上面的介紹中可以看到大部分處理任務通過MSP430單片機片上外設就能完成,利用MSP430單片機強大的功能實現了單芯片解決方案。MSP430單片機是一款資源豐富的超低功耗單片機,在后面的章節中我們將逐步向大家介紹。