王鵬 李紅波 蘇加斌
摘要:文章利用Android智能手機作為應用平臺,通過設計信號調理電路、主控電路和CH9343主機接口電路,實現(xiàn)DAC數(shù)模轉換,使得模擬數(shù)據(jù)按照設定參數(shù)產生波形輸出,通過編寫手機APP應用軟件,完成波形參數(shù)輸入功能。實驗證明,該虛擬信號源實用新穎,使用方便。
關鍵詞:CH9343; STM32;虛擬信號源;手機示波器
實驗室信號源是電子實驗中常用的儀器,目標電路通過接入信號評估測試電路參數(shù)或性能。實驗用信號源往往采用交流供電,體積大,功能多,使用起來也較為復雜。本文設計了一種基于STM32和CH9343的手機配件,通過利用安卓手機和接入應用配件,制作了一款便攜式虛擬信號源。該信號源具有攜帶方便、新穎實用、即插即用等特點,較好地解決了工程技術人員的快速測試需要。近年來,有關智能手機在虛擬信號源方面的應用,更多的只是論述硬件設計方面[1-5],較少的結合智能手機平臺方面的應用設計。
1 STM32單片機
本設計采用意法半導體(STMicroelectronics,ST)公司的STM32F103RC單片機,以ARM Cortex-M3為內核的增強型32位微控制器,專門為高性能、低成本、低功耗的嵌入式應用設計。工作頻率高達72 MHz,是同類產品中性能最高的;256 kB 片上FLASH ROM, 48 kB SRAM; 5個超高速USART;支持DMA操作的2通道12位同步DAC轉換器;8個定時器;支持多路PWM帶死區(qū)控制的通道等,其資源豐富,可以滿足數(shù)據(jù)快速傳輸和復雜的數(shù)據(jù)運算等功能。
2 CH9343接口芯片
該芯片是沁恒公司的一個單芯片全速USB安卓主機接口芯片,符合Android開方文式配件(Android Open Accessory,AOA)規(guī)范,芯片內部配置有USB協(xié)議解析器,用于內置安卓設備對外部組件的訪問。該芯片提供了 USB轉GPIO,UART,SPI和I2C等多種可配置硬件接口,可方便地實現(xiàn)安卓設備接口的擴展,用途廣泛。
3 系統(tǒng)硬件設計
系統(tǒng)硬件主要包括智能手機和信號源配件兩部分。信號源配件由CH9343主機接口電路、STM32主控電路和信號調理電路組成。系統(tǒng)框如圖1所示。
3.1 信號調理電路
信號調理電路主要用來實現(xiàn)信號電流放大和極性變換功能,信號調理電路如圖2所示,圖中給出了其中1路。輸入信號uil范圍為0?+3 V,輸出信號uol范圍為-3?+ 3 V。由前級運放進行信號的雙極性變換,后級進行了 2倍增益和50Ω阻抗輸出等功能。
3.2 STM32主控電路
該電路完成用戶參數(shù)到高速的數(shù)模轉換,以產生需求的模擬信號。主控電路如圖3所示。圖中ui1和ui2分別是數(shù)字模擬轉換器(Digital to analog converter,DAC)通道0和通道 1的輸出信號,它們分別連接至信號調理電路上。STM32控制器的串口(TXD和RXD)與CH9343芯片的擴展串口(RXD和TXD)交叉相連。
3.3 CH9343主機接口電路
STM32控制器高速串口連接至CH9343的串口上,串口采用交叉連接。CH9343芯片的USB端口信號連接至安卓手機的USB接口上。當用戶設定好波形參數(shù)后,數(shù)據(jù)從手機虛擬信號源軟件中下傳到CH9343的USB接口電路,后由CH9343主機接口電路轉發(fā)至STM32的高速串口。CH9343主機接口電路如圖4所示。
4 固件程序設計
固件程序設計主要包括主程序和定時器中斷程序兩部分,其中主程序用于完成控制器初始化設置和數(shù)據(jù)接收功能,定時器中斷程序主要完成波形產生等功能。
4.1 主程序設計
主程序主要包括初始化數(shù)據(jù)緩沖區(qū)、I/O口、串口 1、DAC模塊和定時器TIM1及產生波形等。主程序主要代碼如下:
int main()
{
ClearBuffer 。; //數(shù)據(jù)緩沖區(qū)清零ConfigurationPort(); //配置 I/O端口ConfigurationUart ();//配置高速串口,波特率
921600bps
ConfigurationDAC(); //配置DAC,12位分辨率ConfigurationTIMlO; //初始化定時器while(1)
4.2 定時器中斷程序設計
在該子程序中,啟用了定時器TIM1的中斷功能。當定時時間到達設定值時,進入TIM2_IRQHandler。中斷服務程序,完成一次數(shù)據(jù)DAC數(shù)據(jù)發(fā)送工作。定時周期與波形頻率和周期采樣點數(shù)有關,由下位機計算設置。
定時器中斷服務程序主要代碼如下:
void TIM2-IRQHandler(void)
{
DACSetChannel 1 Dat a(DAC-Align-l 2b-R,DA-ROMValue[0][k]); //發(fā)出通道0數(shù)據(jù)
DAC- S etChannel 1 Dat a(DAC- Align- 12b-R ,D A-ROMValue[l][k]); //發(fā)出通道 1 數(shù)據(jù)cnt++;
if(cnt>=Count)//每通道 20 個點
{
cnt=0;
flagOK=l;
……
}
}
5 應用軟件設計
虛擬信號源應用軟件采用Eclispe開發(fā)環(huán)境編寫。沁恒公司為安卓手機用戶使用外部組件提供了固件支持,只要通過CH9343的安卓Demo模板,就可方便地完成手機APP界面設計和邏輯功能編寫。APP運行時,智能手機與CH9343的通信建立分4個過程:(1)檢測安卓設備是否連接;(2)判斷安卓設備是否支持AOA模式;(3)試圖在AOA模式下啟動設備;(4)支持AOA協(xié)議的情況下,建立通信連接。運行在華為安卓智能手機上的虛擬信號源軟件界面如圖5所示,圖中通道1為雙極性,幅值1.0 V,頻率為1 kHz的正弦波設定情況,通道2為單極性,幅值2.0 V,頻率為5 kHz的三角波設定情況。如圖6所示為圖沖設定參數(shù)的實測波形,上面波形為通道1波形,下面為通道2波形。由圖可知本手機虛擬信號源工作效果良好。
6 結語
本文利用STM32控制器和安卓主機接口芯片,設計了一款手機虛擬信號源。該信號源創(chuàng)新性地把傳統(tǒng)信號發(fā)生器和智能移動終端相結合,擴展了信號源的應用空間,是傳統(tǒng)信號源的有利補充,給工程技術人員帶來便利。實驗證明,該信號源能較好地滿足中低頻信號的發(fā)生需要,使智能手機成為一種便攜式信號源,可以較好地滿足快速便捷測量需求。
[參考文獻]
[1]張海鵬.簡易信號發(fā)生器及手持信號檢測儀[J].電子世界,2017(9):85.
[2]姜建國.基于STM32的新型信號發(fā)生器設計[J].化工自動化及儀表,2017(3):273.
[3]蘇加斌,李紅波.基于IAP15W和CH9343的手機虛擬示波器設計[J].電子世界,2016(5):76.
[4]牟光紅.STM32的雙路信號源及其配置平臺設計[J].單片機與嵌入式系統(tǒng)應用,2014(10):37.
[5]王永勝.USB+OTG在手持數(shù)字存儲示波表中的應用研究[D].成都:電子科技大學,2009.