朱 震
(桂林電子科技大學(xué) 信息科技學(xué)院 信息工程系,桂林541004)
SoC已集成了很多數(shù)字功能,設(shè)計者們開始將目光投向復(fù)雜的模擬與射頻功能。模擬模塊不適用于構(gòu)建SoC的標(biāo)準(zhǔn)IP(知識產(chǎn)權(quán))集成策略,它們與設(shè)計中其他部分有太多的交互作用。
現(xiàn)在有許多公司已經(jīng)開始推出混合信號微處理器,如TI的 MSP430系列、Cypress的PSoC系列、Silicon Labs的C8051F系列。這些芯片不僅集成大量的數(shù)字IP核,而且集成了常用的模擬單元。
本文基于TI公司的混合信號處理器MSP430F5504設(shè)計了一款超低功耗、高性價比、高處理能力的USB混合信號處理器開發(fā)板(校園廣播系統(tǒng))。
校園廣播系統(tǒng)的設(shè)計及實現(xiàn)更好地說明MSP430系列芯片的良好功能和開發(fā)方法,系統(tǒng)總體原理框圖如圖1所示。整個系統(tǒng)包括MSP430混合信號處理器模塊、電源模塊、輸入模塊、液晶顯示模塊、通用串口模塊(包含I2C、SPI、UART)、JTAG調(diào)試模塊、USB模塊等。
圖1 MSP430F5504開發(fā)板的總體原理框圖
MSP430F5504是優(yōu)秀的片上系統(tǒng),只要外接1.8~3.6 V電源,加上一個低頻晶振就能工作。MSP430F5504有VQFN和LPFQ兩種封裝,這里采用LQFP48封裝,方便焊接、安裝、調(diào)試。
本系統(tǒng)由一個32.768 k Hz的低頻晶振和一個4 MHz的高頻晶振構(gòu)成。低頻晶振和兩個12 p F的負(fù)載電容接在MSP430F5504的Xin和Xout端,當(dāng)系統(tǒng)需要高頻時鐘時使用(供CPU高速運行、作為ADC的高速轉(zhuǎn)換時鐘等)。高頻晶振需要更大的負(fù)載電容才能正常工作,系統(tǒng)采用了一個4 MHz的高頻晶振及其相匹配的兩個47 p F電容接在高頻時鐘引腳端(XT2IN和XT2OUT)。微處理器的數(shù)字電源和模擬電源都從3.3 V的穩(wěn)壓電源獲得。系統(tǒng)要正確地恢復(fù)到原始狀態(tài),必須有復(fù)位電路,MSP430F5504是低電平復(fù)位。
本系統(tǒng)采用Nokia 5110 LCD,此LCD由Philips公司生產(chǎn)的PCD8544驅(qū)動芯片控制。PCD8544是一塊低功耗的CMOS LCD控制驅(qū)動器,設(shè)計為驅(qū)動48行×84列的圖形顯示。所有顯示功能集成在一塊芯片上,包括LCD電壓及偏置電壓發(fā)生器,只需很少外部元件且功耗低。
Nokia 5110屬于低功耗LCD,靜態(tài)電流只有200μA。控制接口簡單,通過SPI接口就可以輕松地進(jìn)行控制,具有5根信號線、2根電源線。還可根據(jù)需要通過控制BL背光控制線來開關(guān)背光。在低功耗運行時,可通過此控制線關(guān)閉背光。
JTAG測試允許多個器件通過JTAG接口串聯(lián)在一起,電路板上的很多芯片可以將它們的JTAG引腳通過Daisy Chain的方式連在一起,并且Probe只需連接到一個JTAG端口就可以訪問一塊電路板上的所有IC。
MSP430F5504集成了JTAG調(diào)試接口,這極大地方便了程序的開發(fā)。MSP430采用了14引腳的JTAG調(diào)試接口。通過該接口不僅可以對程序進(jìn)行在線調(diào)試,而且可以下載程序,讓程序全速運行,并觀測程序在實際電路上的運行效果。
串口是系統(tǒng)與外界聯(lián)系的重要手段,在嵌入式系統(tǒng)開發(fā)和應(yīng)用中,經(jīng)常需要上位機(jī)實現(xiàn)系統(tǒng)調(diào)試及現(xiàn)場數(shù)據(jù)的采集和控制。一般是通過上位機(jī)本身配置的串口,通過串行通信技術(shù)和嵌入式系統(tǒng)進(jìn)行通信。
通用串口模塊是TI微處理器特有的設(shè)計,它在一個串口硬件模塊中支持多個串口通信協(xié)議。TI的MSP430系列的通用串口模塊支持的串口協(xié)議有UART、SPI、I2C總線協(xié)議。根據(jù)不同的寄存器配置,通用串口通信模塊可以配置為上述的任意的一個串口,具有極大的靈活性,特別是對于小引腳數(shù)的單片機(jī),通過引腳復(fù)用大大地增強了單片機(jī)的功能。
2.4.1 通用串口——UART模式
異步通信字符格式由4部分組成:起始位、數(shù)據(jù)位、奇偶校驗位和停止位。其中,用戶可以通過軟件設(shè)置數(shù)據(jù)位、停止位的位數(shù),還可以設(shè)置奇偶位的有無。通過選擇時鐘源的波特率寄存器的數(shù)據(jù)來確定位周期。
串行操作自動錯誤檢測:USART模塊接收字符時,能夠自動進(jìn)行校驗錯誤、幀錯誤、溢出錯誤和打斷狀態(tài)檢測。
在異步通信中,波特率是很重要的指標(biāo),表示為每秒傳送二進(jìn)制數(shù)碼的位數(shù)。波特率反映了異步串行通信的速度。波特率發(fā)生器產(chǎn)生同步信號表明各位的位置。波特率部分由時鐘輸入選擇、分頻、波特率發(fā)生器、調(diào)整器和波特率寄存器組成。串行通信時,數(shù)據(jù)接收和發(fā)送的速率就由這些構(gòu)件控制。
2.4.2 通用串口——I2C模式
(1)I2C總線位傳輸
由于連接到I2C總線的器件有不同種類的工藝(CMOS、NMOS、雙極性),邏輯0(低)和1(高)的電平不是固定的,它由VDD的相關(guān)電平?jīng)Q定,每傳輸一個數(shù)據(jù)位就產(chǎn)生一個時鐘脈沖。
I2C總線模式支持任何從模式或主模式下的I2C總線兼容設(shè)備。每個I2C總線設(shè)備都有唯一的地址可供識別,并可以隨意作為發(fā)送端或接收端對其操作。當(dāng)進(jìn)行數(shù)據(jù)傳輸時,I2C總線總線上的設(shè)備可以被視為主設(shè)備或者是從設(shè)備。主設(shè)備開始數(shù)據(jù)發(fā)送并產(chǎn)生時鐘信號SCL,任何一個能被主設(shè)備尋址到的設(shè)備都可視為一個從設(shè)備。
I2C總線數(shù)據(jù)通過串行數(shù)據(jù)線(SDA)和串行時鐘線(SCL)進(jìn)行傳輸,SDA和SCL均為雙向,它們必須通過一個上拉電阻連接到供電電源的正極。
(2)I2C總線的串行數(shù)據(jù)
每傳輸一個數(shù)據(jù)位,主設(shè)備都會產(chǎn)生一個時鐘脈沖。I2C總線模式下進(jìn)行的是字節(jié)操作,每個起始位發(fā)出之后的第一個字節(jié)包含有7位從地址和一個R/W位。當(dāng)R/W=0時,主設(shè)備向從設(shè)備發(fā)送數(shù)據(jù);當(dāng)R/W=1時,主設(shè)備從從設(shè)備接收數(shù)據(jù)。應(yīng)答位ACK是接收方對應(yīng)第9個SCL時鐘發(fā)出的握手信號。START起始條件和STOP停止條件都是由主設(shè)備產(chǎn)生。在SCL為高時,將SDA由高跳變至低,產(chǎn)生一個START起始條件。在SCL為高時,將SDA由低跳變至高,產(chǎn)生一個STOP停止條件。總線忙位UCBBUSY在START出現(xiàn)后置位,在STOP出現(xiàn)后清零。
(3)I2C總線尋址方式
I2C總線模式下支持7位和10位尋址方式。
7位尋址的格式如圖2所示,第一個字節(jié)包括7位從地址和一個R/W讀寫控制位。應(yīng)答位ACK是接收方在每個字節(jié)后發(fā)出的握手信號。
圖2 位尋址格式
10位尋址的格式如圖3所示,第一個字節(jié)由11110b加上10位從地址的高兩位和R/W 位構(gòu)成。每個字節(jié)結(jié)束后,由接收方發(fā)送ACK應(yīng)答信號。下一個字節(jié)是10位從地址剩下的8位數(shù)據(jù),在這之后是ACK應(yīng)答信號和8位數(shù)據(jù)。
圖3 10位尋址格式
主設(shè)備可以在不停止當(dāng)前傳輸狀態(tài)的情況下,通過再次發(fā)送一個起始位來改變SDA上數(shù)據(jù)流的傳輸方向,這被稱為“再次起始”。再次起始位產(chǎn)生后,從設(shè)備的地址和標(biāo)示數(shù)據(jù)流方向的R/W位需要重新發(fā)送。再次起始條件格式如圖4所示。
圖4 重復(fù)起始條件時序
(4)I2C總線模式下的操作方式
在I2C總線模式下USCI模塊可以工作在主發(fā)送模式、主接收模式、從發(fā)送模式或者從接收模式。
主設(shè)備模式:選擇I2C總線模式的同時設(shè)置UCMODEx=11,USCYNC=1,并置位 UCMST位可以使 USCI模塊工作在I2C總線主模式。當(dāng)主模塊是一個多主設(shè)系統(tǒng)的一部分時,必須對UCMM置位,并通過編程將其本機(jī)地址寫入寄存器UCBxI2C OA中。當(dāng)UCA10=0時,選擇7位尋址模式。當(dāng)UCA10=1時,選擇10位尋址模式。若要響應(yīng)廣播,則可以置位UCGCEN位。
從設(shè)備模式:選擇I2C總線模式的同時設(shè)置UCMODEx=11,USCYNC=1,并清零 UCMST位可以使 USCI模塊工作在I2C總線從模式。
2.4.3 通用串口——SPI模式
在同步模式下,USCI通過3個或者4個引腳把MSP430連接到一個外部系統(tǒng)中,這些引腳分別是:UCx-SIMO、UCxSOMI、UCxCLK和 UCxSTE。選擇SPI模式有兩種情況:當(dāng)“同步位”時置“1”;根據(jù)UC模式的位來選擇。
4線的SPI主模式為控制本主機(jī)。當(dāng)UCxSTE處于主模式不工作的狀態(tài)中:
①UCxSIMO和UCxCLK被置“1”,用來輸入信號,并且不再驅(qū)動總線。
②出錯位UCFE被置“1”,用來報告通信整體性的錯誤需要用戶處理。
③內(nèi)部的狀態(tài)為機(jī)器復(fù)位,移位工作被終止。
4線的SPI從模式為在4引腳的SPI從模式下,UCx-STE被從模式用來使發(fā)送和接收處于工作狀態(tài)。當(dāng)UCxSTE處于從模式活動狀態(tài)時,從動器件處于正常工作的狀態(tài)。當(dāng)UCxSTE處于停止?fàn)顟B(tài)時:
①任何在UCxSIMO口進(jìn)行中的接收工作將會停止;
②UCxSOMI被置于輸入的方向;
③移位工作也會停止,一直到UCxSTE過渡到從模式下的活動狀態(tài)。
這種UCxSTE輸入信號的功能不用于3引腳的模式當(dāng)中。
盡管USCI有多種模式可供配置,但它們共同利用相同的引腳,本設(shè)計既考慮到硬件串口模塊的使用,利用了I/O模塊串口的靈活性,通過跳帽來選擇是利用芯片內(nèi)部的硬件串口模塊還是利用相應(yīng)個數(shù)的I/O接口來模擬串口協(xié)議,這提高了系統(tǒng)的靈活性。
2.4.4 D/A轉(zhuǎn)換模塊的設(shè)計
特定型號的 MSP430F5504芯片帶有內(nèi)置D/A轉(zhuǎn)換器,但MSP430F5504不帶有內(nèi)置D/A轉(zhuǎn)換器,而增加外部D/A轉(zhuǎn)換器將增加了電路的復(fù)雜性。一般的條件下,只要求某一幅度的直流電壓值同,所以采用低成本的PWM加外置無源器件來實現(xiàn)D/A轉(zhuǎn)換器的功能。
PWM技術(shù)是一種對模擬信號電平的數(shù)字編碼方法,通過使用高分辨率計數(shù)器(調(diào)制頻率)調(diào)制方波的占空比,實現(xiàn)對一個模擬信號的電平進(jìn)行編碼。其最大的優(yōu)點是,從處理器到被控對象之間的所有信號都是數(shù)字形式的,無需再進(jìn)行數(shù)模轉(zhuǎn)換過程;而且對噪聲的抗干擾能力也大大增強(噪聲只有在強到足以將邏輯值改變時,才可能對數(shù)字信號產(chǎn)生實質(zhì)的影響),這也是PWM在通信等信號傳輸行業(yè)得到大量應(yīng)用的主要原因。
通過調(diào)節(jié)PWM的占空比,可以產(chǎn)生等效幅度的電壓,再通過低通濾波器產(chǎn)生相應(yīng)的模擬輸出。在信號接收端,需將信號解調(diào)還原為模擬信號,目前在很多微型處理器內(nèi)部都包含有PWM控制器模塊。
2.4.5 LED輸出指示電路
有時為了電路調(diào)試方便,將引腳的狀態(tài)通過LED燈來進(jìn)行指示,也可以作為簡單的測試使用,連接一個I/O口,并與LED和一個1 kΩ電阻串聯(lián)組成該電路。
2.4.6 按鍵輸入電路
通過按鍵來模擬用戶的有效UI接口,把I/O引腳上拉到DVCC3.3數(shù)字電源,當(dāng)有按鍵按下時把I/O口狀態(tài)拉低。
2.4.7 電源指示電路
當(dāng)電源接通時給用戶一個提示,這有利于改善用戶的使用感受,給用戶一個反饋,表明電源是否正確連接。當(dāng)在低功耗模式下,或用戶已不需要電源指示功能時,可以通過去除跳帽來減少系統(tǒng)的功耗。
2.4.8 電源隔離電路
高速的I/O口操作和I/O的上拉下拉,都會使系統(tǒng)的數(shù)字電源產(chǎn)生尖峰電流脈沖,這對系統(tǒng)的正常工作有很大影響。如果這些噪聲引入系統(tǒng)的模擬設(shè)備,將影響系統(tǒng)的模擬外設(shè)。所以,對系統(tǒng)的數(shù)字電源和模擬電源進(jìn)行隔離是非常必要的。
在系統(tǒng)的模擬電源AVCC33和數(shù)字電源DVCC33之間接入一個磁珠,能有效地提高系統(tǒng)的穩(wěn)定性,保證系統(tǒng)的正常工作。數(shù)字地和模塊之間通過0Ω電阻相連,也能有效地減小系統(tǒng)的干擾。
MSP430F5504可以通過多種接口對程序進(jìn)行下載,通過JTAG和SBW接口不僅可以對程序進(jìn)行調(diào)試和下載,而且還能夠在調(diào)試完畢后通過一定的指令燒斷保密熔絲,使調(diào)試接口自毀。自毀后JTAG或SBW接口失效,再也無法通過它讀取內(nèi)部代碼,避免代碼被他人讀取或復(fù)制,從而保護(hù)知識產(chǎn)權(quán)。
在設(shè)計階段和原理樣機(jī)階段,要對程序不斷進(jìn)行編寫、修改、仿真和調(diào)試,只需要JTAG和SBW接口,不進(jìn)行燒熔絲操作。一旦產(chǎn)品定型,在發(fā)布和量產(chǎn)階段,不再需要調(diào)試程序,只需要燒寫代碼;如果要燒毀熔絲,則要保留BSL接口。
本系統(tǒng)可以通過單枚紐扣電池供電,也可以通過USB接口供電。
MSP430F5504是混合信號處理器的一種,獨特的設(shè)計和架構(gòu)給用戶很大的靈活性,并帶來超低的功耗和強大的處理能力?,F(xiàn)在已經(jīng)廣泛用于各種領(lǐng)域,如聯(lián)網(wǎng)式氣表、便攜式測量儀器、醫(yī)療器械等。
設(shè)計制作高性能、低成本MSP430系列開發(fā)板可以加快產(chǎn)品的開發(fā)速度,減短產(chǎn)品的上市時間,加大前端應(yīng)用的普及性。因此,設(shè)計一款方便、穩(wěn)定、可靠的開發(fā)板也就顯得比較有意義。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
[1]胡大可.MSP430F5504系列單片機(jī)C語言程序設(shè)計與開發(fā)[M].北京:北京航空航天大學(xué)出版社,2001.
[2]Texas Instruments.MSP430F5504產(chǎn)品選型手冊,2012.
[3]張明慧,張桂興.微控技術(shù)論壇 MSP430F5504F5系列16位超低功耗單片機(jī)模塊原理[EB/OL].[2014-03].http://wenku.baidu.com/link?url=5_uIBp Aro-UBzx QOmND9ATJO t7uysxyBhXZRAEACaaq0iO2orlOhPZo_DAqJc MjhCnJdCUn Aspyv SA9LcfGZMsFiZS55VivBMofWIl0-foa.
[4]趙建,謝楷.MSP430F5504系列十六位超低功耗單片機(jī)[M].北京:機(jī)械工業(yè)出版,2009.
[5]Texas Instruments.MSP430F550x,MSP430F5510 Mixed Signal Microcontroller,2011.
[6]Texas Instruments.MSP430x5xx and MSP430x6xx Family User's Guide,2011.
[7]李智奇.MSP430F5504系列超低功耗單片機(jī)原理與系統(tǒng)設(shè)計[M].西安:西安電子科技大學(xué),2005.
[8]魏小龍.MSP430F5504系統(tǒng)單片機(jī)接口技術(shù)及系統(tǒng)設(shè)計實例[M].北京:北京航空航天大學(xué)出版社,2002.
[9]張晞,王德銀,張晨.MSP430F5504系列單片機(jī)實用C語言程序設(shè)計[M].北京:人民郵電出版社,2005.
[10]秦龍.MSP430F5504單片機(jī)C語言應(yīng)用程序設(shè)計實例精講[M].北京:電子工業(yè)出版社,2006.
[11]梁源,賈靈,郝強.大學(xué)生嵌入式學(xué)習(xí)實踐—基于MSP430F5504系列[M].北京:北京航空航天大學(xué)出版社,2010.
[12]謝興紅,林凡強,吳雄英.MSP430F5504單片機(jī)基礎(chǔ)與實踐[M].北京:北京航空航天大學(xué)出版社,2008.