高 瑛,謝戰(zhàn)洪,王大鵬
(鄭州機電工程研究所,河南 鄭州 450015)
工程技術(shù)人員采用DSP芯片進行系統(tǒng)設(shè)計時,需要對很多信號進行采集,若僅使用DSP芯片上的A/D轉(zhuǎn)換器進行信號采集,顯然不夠。因此,人們轉(zhuǎn)向使用片外A/D轉(zhuǎn)換器?,F(xiàn)將闡述TI公司的TMS320F28335(以下簡稱F28335)的多通道緩沖串口(McBSP, Multi-channel Buffered Serial Port)與兩片串行A/D轉(zhuǎn)換器ADS7863的接口設(shè)計。
[1-7]。TMS320F28335是一款高性能、多功能、高性價比32位浮點DSP。該器件最高可在150MHz主頻下工作,片上集成豐富的外設(shè),其中包括兩個McBSP。McBSP是一種同步串行接口,除具有一般DSP串口功能之外,還可以支持T1/E1,ST-BUS,SPI等不同標準。McBSP包括6個引腳,分別是串行數(shù)據(jù)發(fā)送信號(DX, Data Transmit),串行數(shù)據(jù)接收信號(DR, Data Receive),發(fā)送時鐘信號(CLKX, Transmit Clock),接收時鐘信號(CLKR, Receive Clock),發(fā)送幀同步信號(FSX, Transmit Frame Synchronization)和接收幀同步信號(FSR, Receive Frame Synchronization)。McBSP通過這6個管腳為外部設(shè)備提供了數(shù)據(jù)通道和控制通道。
McBSP通過DX和DR實現(xiàn)DSP與外部設(shè)備的通信和數(shù)據(jù)交換。其中,DX完成數(shù)據(jù)發(fā)送,DR完成數(shù)據(jù)接收??刂菩畔⑼ㄟ^CLKX、CLKR、FSX和FSR以時鐘和幀同步的形式進行通信。由于 McBSP內(nèi)有一個可編程的采樣和幀同步時鐘發(fā)生器,所以這些時鐘和幀同步信號既可以由內(nèi)部產(chǎn)生,也可以由外部輸入。
McBSP發(fā)送數(shù)據(jù)的過程如下:首先將要發(fā)送的數(shù)據(jù)寫入數(shù)據(jù)發(fā)送寄存器(DXR[1,2], data transmit register),如果發(fā)送移位寄存器(XSR[1,2], transmit shift register)中沒有數(shù)據(jù),則DXR[1,2]中的值先復(fù)制到XSR[1,2],再由XSR[1,2]將數(shù)據(jù)移到 DX上發(fā)送;如果 XSR[1,2]不為空,則等待將 XSR[1,2]中的數(shù)據(jù)全部移出到DX腳發(fā)送后才將DXR[1,2]中的值復(fù)制到XSR[1,2],再由DX腳將數(shù)據(jù)發(fā)送出去。
McBSP接收數(shù)據(jù)的過程如下:DR腳上接收的數(shù)據(jù)首先移入接收移位寄存器(RSR[1,2], receive shift register),一旦收到一個字(可以是8、12、16、24或32位),檢查接收緩沖寄存器(RBR[1,2], receive buffer register)是否為空,如果為空,則將 RSR[1,2]中的數(shù)據(jù)復(fù)制到RBR[1,2],接著,數(shù)據(jù)被復(fù)制到數(shù)據(jù)接收寄存器(DRR[1,2], data receive register),CPU通過讀取DRR[1,2]中的數(shù)據(jù)完成數(shù)據(jù)接收。需要注意的是,DRR2、RBR2、RSR2、DXR2和XSR2寄存器只有當接收或發(fā)送的字長超過16位(20位、24位和32位)時,才會用上。
ADS7863是一個雙路、2MSPS、12位、3+3或2+2通道、基于連續(xù)逼近寄存器原理的同步采樣模數(shù)轉(zhuǎn)換器。ADS7863具有如下特點:①四路全差分或六路偽差分輸入;②信噪比:71 dB,總諧波畸變率:-81 dB;③可編程的和緩沖的內(nèi)部2.5 V參考電壓;④靈活的省電功能;⑤可變的電源范圍:2.7~5.5 V;⑥低功率操作:5 V時45 mW;⑦工作溫度范圍:-40~+125℃;⑧引腳與ADS7861、ADS8361等芯片兼容。
(1)ADS7863的主要引腳定義
ADS7863的主要引腳定義如下:①CHxy+:同相模擬輸入通道 xy+(x代表A或B,y 代表0 或 1,eg:A1+);②CHxy-:反相模擬輸入通道xy-;③M1:模式引腳1,選擇SDOx數(shù)字輸出,x代表A或B;④M0:模擬引腳0,選擇模擬輸入通道;⑤SDI:串行數(shù)據(jù)輸入;⑥CONVST:轉(zhuǎn)換開始;⑦RD:讀數(shù)據(jù);⑧CS:芯片選擇;⑨CLOCK:外部時鐘輸入;⑩BUSY:ADC忙碌指示符;SDOB:轉(zhuǎn)換器B的串行數(shù)據(jù)輸出;SDOA:轉(zhuǎn)換器A的串行數(shù)據(jù)輸出。
(2)ADS7863的工作原理
ADS7863的工作模式根據(jù)M0、M1的不同配置分為四種,如表1所示。以下主要介紹ADS7863的M0=0、M1=1模式時的工作原理。當M0=0、M1=1 時,ADS7863工作在人為通道控制模式,數(shù)據(jù)只在SDOA腳輸出,SDOB腳置為3態(tài)。SDI選擇不同的模擬輸入通道。當CONVST置高時,一個轉(zhuǎn)換被觸發(fā)。ADS7863需要32個CLOCK周期從兩個模數(shù)轉(zhuǎn)換器ADCs輸出轉(zhuǎn)換結(jié)果,需要1.0 us完成一個完整的CONVERSION/READ周期。如果CONVST信號每0.5 us被觸發(fā)一次(RD信號的需要),那么每第二個脈沖被忽略。在CONVST的上升沿,不管CLOCK的狀態(tài),ADC從采樣模式進入保持模式。經(jīng)過一些延遲,BUSY信號變成高電平,并且在轉(zhuǎn)換周期內(nèi)保持高電平。在第二個時鐘的下降沿,根據(jù)SDI寄存器的C[1∶0]兩位的狀態(tài),ADS7863選擇使用下一個轉(zhuǎn)換周期的模擬輸入通道。CS必須置為低電平以使能SDOA輸出。在每個轉(zhuǎn)換的每32個CLOCK周期的下降沿,數(shù)據(jù)是有效的。輸出數(shù)據(jù)由一個‘0’,緊接一個 ADC指示符(CHAx為‘0’,CHBx為‘1’),12位轉(zhuǎn)換結(jié)果,和一個‘00’組成。
表1 M0/M1真值表
參考文獻[8]。圖1是F28335 McBSP與兩片ADS7863無縫連接的示意圖。該硬件接口設(shè)計中兩片 ADS7863與同樣的McBSP引腳連接??梢钥闯?,McBSP與兩片ADS7863之間的連接非常簡單,實現(xiàn)了數(shù)據(jù)的高效轉(zhuǎn)移,充分體現(xiàn)了同步串口連接的優(yōu)點。
圖1 McBSP與兩片ADS7863無縫連接的示意圖
由F28335 DSP的GPIO10向ADS7863-1提供片選信號、GPIO11向 ADS7863-2提供片選信號。McBSP的數(shù)據(jù)發(fā)送DX腳接兩片ADS7863的SDI腳,向兩片ADS7863發(fā)出控制信號。兩片ADS7863的SDOA腳接McBSP的數(shù)據(jù)接收DR腳,向F28335傳送數(shù)據(jù)信號。由McBSP內(nèi)含的可編程采樣率發(fā)生器生成時鐘信號 CLKG和幀同步信號 FSG。由CLKG驅(qū)動發(fā)送時鐘信號CLKX,CLKX驅(qū)動接收時鐘信號CLKR和兩片ADS7863的時鐘信號CLOCK。由FSG驅(qū)動發(fā)送幀同步信號FSX,F(xiàn)SX驅(qū)動接收幀同步信號FSR和兩片ADS7863的開始轉(zhuǎn)換信號CONVST。CONVST初始化一個轉(zhuǎn)換進程,并啟動發(fā)送前一周期轉(zhuǎn)換的數(shù)據(jù)。為了簡化,只連接了兩片ADS7863的CHA0+、CHB0+、CHA1+、CHB1+通道,可用輸出數(shù)據(jù)的第二位(ADC指示符)分辨所采樣的信號來自哪個通道,并用GPIO10、GPIO11判斷所采樣的信號來自哪個芯片。
(1)MCBSP口初始化
參考文獻[9-10]。整個初始化過程包括三部分:接收部分初始化、發(fā)送部分初始化和采樣率發(fā)生器初始化。
①DSP初始化后,采樣率發(fā)生器的初始化位GRST置0;在其它情況下,也可通過向串口控制寄存器2(SPCR2, Serial Port Control 2 Register)寄存器中的GRST位置0,使采樣率發(fā)生器處于初始化狀態(tài)。在此狀態(tài)下,時鐘 CLKG時鐘為CPU時鐘的1/2,幀同步信號FSG為邏輯0;設(shè)置接收初始化位RRST、發(fā)送初始化位XRST和幀同步發(fā)生器初始化位FRST為0;
②對采樣率發(fā)生器SRGR[1,2]進行設(shè)置,并對其它控制寄存器進行設(shè)置;
③等待兩個CPU時鐘以確保內(nèi)部正確同步;
④將采樣率發(fā)生器初始化位置 1,使采樣率發(fā)生器進行工作;
⑤等待兩個SRG時鐘;
⑥將接收和發(fā)送初始化位置1;
⑦在下一個CPU時鐘的上升沿,CLKG時鐘發(fā)送一個1,并以(CPU時鐘/(1+CLKGDV))的頻率運行;
⑧在數(shù)據(jù)發(fā)送寄存器DXR[1,2]被載入數(shù)據(jù)后,將幀同步初始化位置1以發(fā)出正確的幀同步脈沖信號?,F(xiàn)是McBSP初始化程序片段:
(2)McBSP串口通信主要程序
當ADS7863的輸入模擬量為以下時:
A/D轉(zhuǎn)換器SDOA引腳輸出如圖2所示。圖中第二條曲線為ADS7863的轉(zhuǎn)換開始信號CONVST,第一條曲線為兩片ADS7863的轉(zhuǎn)換輸出結(jié)果,輸出順序依次為:
試驗中,通過設(shè)置McBSP的采樣率發(fā)生器時鐘分頻系數(shù)CLKGDV,使得McBSP的采樣率發(fā)生器時鐘CLKG頻率為 323.2 kHz,從而使得兩片 ADS7863的外部輸入時鐘CLOCK頻率為323.2 kHz、轉(zhuǎn)換開始信號CONVST頻率為20.2 kHz。
圖2 SDOA輸出
與其它論文只用一個McBSP串口連接一片A/D芯片不同,通過一個McBSP串口與兩片ADS7863之間的軟硬件接口設(shè)計及試驗結(jié)果,驗證了一個 McBSP串口可以擴展更多的A/D芯片,從而可以采集更多的信號。對其它A/D系統(tǒng)設(shè)計具有很大的借鑒意義。
參考文獻
[1] 薛志宏,劉建業(yè).TMS320C54XX系列 DSP與 PC機間串行通信的實現(xiàn)[J].集成電路應(yīng)用,2003(05):78-80.
[2] 唐麗萍,牛大勝.McBSP在音頻處理中的應(yīng)用[J].開發(fā)與應(yīng)用,2005(06):44-46.
[3] 李季,戚俊,陳結(jié)祥,張毅,等.TMS320VC5402與高速 A/D的無縫連接[J].量子電子學(xué)報,2002,19(06):545-549.
[4] 張秀麗,李萍,陸光華.TMS320VC5402與串行AD/DA轉(zhuǎn)換器的接口設(shè)計[J].電子工程師,2003,29(08):21-23.
[5] 趙軍朝,譚爭光,邵婷,等.TMS320VC54XX與串行A/D接口設(shè)計[J].火炮發(fā)射與控制學(xué)報,2008,32(03):58-60.
[6] 俞興明.基于DSP的DMA和McBSP的雙聲道音頻采集系統(tǒng)設(shè)計[J].電子測量技術(shù),2009,32(02):118-120.
[7] 韓康榕,陸宏,季曉勇.數(shù)字處理器與通用異步串口通信的實現(xiàn)[J].通信技術(shù),2002(01):55-57.
[8] 梁天明,耿相銘,陳健.多通道串行 A/D轉(zhuǎn)換器與 TI DSPs的接口實現(xiàn)[J].通信技術(shù),2002(05):4-7.
[9] 任治剛,孫洪波,張澤.TMS320C54x系列 McBSP 串口特性及其應(yīng)用[J].內(nèi)蒙古大學(xué)學(xué)報,2001,32(03):336-339.
[10] 王新艷,李欣.多通道緩沖串行接口簡介[J].儀表技術(shù),2007,(06):44-45.