邵煥杰,夏靜
(南京理工大學 機械工程學院,江蘇 南京 210094)
在固體火箭武器發(fā)射測試時,需要采集火箭武器發(fā)動機噴射的燃氣流作用在發(fā)射車相關位置上產生的壓力、振動等參數,采集數據得到具體參數的變化曲線,對提升火箭武器發(fā)射的穩(wěn)定性、精度和安全性具有重要的參考價值,因此要保證采集數據的精確度[1]。傳感器在與標定環(huán)境不一時產生的漂移或溫差電勢在經放大電路放大后會嚴重影響采集數據的精度,傳感器需要通過調零來消除此類誤差干擾,來保證采集精度。由此,本文主要介紹了以STM32為內核芯片觸摸屏顯示控制各通道傳感器數據的輸出值,通過CAN總線通信實現調零功能。STM32系列是基于ARM Cortex-M3內核設計,性能突出,外設豐富,運用廣泛,滿足設計要求??刂破骶植烤W(controller area network,CAN) 是 BOSCH 公司推出的一種多主機局域網,CAN 總線系統(tǒng)可由上位機(PC機或工控機)、數據轉換器和現場節(jié)點組成[2]。由于火箭武器發(fā)射測試現場環(huán)境惡劣、電磁輻射強,普通的串口通信易受干擾,采集通道數要求較多,CAN通信比較適用于此類場合。CAN主站及從站均采用內置CAN控制器的32位高性能微處理器STM32F103RCT6作為核心芯片,采用TJA1050作為CAN收發(fā)器,實現電平轉換和通信功能。
硬件結構如圖1所示,整個電路主要由基于STM32的觸摸屏主站和從站的信號調理及控制電路組成。
圖1 硬件電路結構
主站電路如圖2所示,主要包括電源模塊,STM32模塊,CAN收發(fā)器模塊和觸摸屏模塊。
圖2 CAN主站電路
STM32模塊由STM32F103RCT6微控制器、晶振時鐘、復位、一鍵下載電路組成。該芯片是基于32位 ARM Cortex-M3 核心,最高工作頻率為 72 MHz,擁有48 KB SRAM, 256 KB FLASH[3]。
STM32內置CAN控制器bxCAN,支持CAN2.0A和2.0B協(xié)議,最高支持1 Mbits/s。包含3個發(fā)送郵箱,2組各包含3個接收郵箱的FIFO,報文的接收和發(fā)送主要由STM32完成。CAN收發(fā)模塊主要采用TJA1050,是CAN控制器和物理總線之間的接口,是一種速率相對較高的收發(fā)器[4]。發(fā)送接收端口可直接與STM32的CAN_RX和CAN_TX端口相連。
觸摸屏主要采用的是ALIENTEK推出的4.3″TFTLCD電容觸摸屏。屏幕分辨率為800×480,16位真彩顯示,采用NT35510驅動,芯片自帶GRAM,無需任何外加驅動器,支持5點同時觸摸,具有良好的操控效果。圖3為LCD與STM32接口電路,LCD表示與顯示相關串口,T表示與觸摸控制通信相關串口。LCD采用16位8080并口,觸摸屏采用IIC接口。觸摸屏與CAN主站硬件通過兩排共32個排針連接和四角的安裝定位孔通過螺紋連接固定。
圖3 觸摸屏連接圖
從站電路如圖4所示,各通道均由電源模塊、STM32模塊、CAN收發(fā)器模塊、信號調理模塊和傳感器橋壓供電模塊組成。
圖4 CAN從站電路結構
信號調理模塊電源模塊為±12 V供應,采用線性降壓穩(wěn)壓器LM7805和AMS117_3.3 V進行降壓生成穩(wěn)定的5 V和3.3 V電壓為CAN收發(fā)器和STM32進行供電。
采集壓力信號時,壓力傳感器內部為全橋結構,需要穩(wěn)定的10 V橋壓供電,采用REF102AP產生10 V基準電壓供電。電橋輸出電壓信號非常小,通常為mV級,采用高精度儀用放大器AD8221作為放大器,其具有較大的輸入阻抗,在G=1、頻率最高為10 kHz時,AD8221的共模抑制比保持在80 db,相對于頻率的高共模抑制比使得AD8221可以抑制帶寬干擾和線路諧波,大大簡化了濾波要求[5]。濾波電路采用MAX280芯片的低通巴特沃斯低通濾波電路,壓力采集有效信號頻率在1 kHz以下,MAX280是一種開關電容濾波器,引腳4 DR接地,則分頻比為200,采用內部140 kHz時鐘,截止頻率計算式如式(1)。
(1)
式中:fc為截止頻率;fcosc為時鐘頻率;DR為分頻比。
可通過改變引腳4的接法來得到不同截止頻率,此處DR接地,如圖5所示,分頻比為200,可得出截止頻率約為700 Hz,可以有效截止干擾信號。
圖5 放大濾波電路
調零信號采集電路由運放ADOP07,STM32和AD7680共同組成。AD7680是Analog Device公司生產的一款16位,100 ksps,功率為3 mW的低功率、高速模數轉換芯片,參考電壓與電源電壓同步,具有關斷模式。支持SPI,QSPI,MICROWIRE和DSP高速串行通信[6]。調零信號采集電路中信號通過運放ADOP07CH,輸出信號VOUT=1.65+VIN,零點值為1.65V,送入基準電壓為3.3V的AD7680進行模數轉換。
調零輸出電路主要由STM32、ADOP07和增益為1的放大器AD8221組成,如圖6所示,ADOP07輸出電壓VOUT2=1.65-VDAC1后,與原信號通過放大器AD8221,消除漂移電壓,實現調零輸出。
圖6 調零輸出電路
系統(tǒng)軟件主要由CAN主站通信程序,觸摸屏顯示控制程序及從站節(jié)點調零通信程序構成,均采用STM32的固件庫在Keil μVision環(huán)境下采用C語言模塊化編程,均通過C語言編寫。
各模塊程序是為了實現對傳感器的調零及傳感器數值的實時顯示。結構流程包括:1) CAN主站、從站配置初始化;2)從站采集發(fā)送信號電壓;3)主站接收各個從站數據,通過數值轉換、顯示程序,在屏幕上顯示各從站數值;4)點擊觸摸屏進入調零模式,針對各從站接收傳感器傳來的數值,進行相應的上調、下降,循環(huán)以上步驟,使其接近零點;5)點擊觸摸屏進入數據采集模式,信號傳送給數據采集系統(tǒng)。
CAN控制器的初始化主要包括主控寄存器工作方式(CAN_MCR)和過濾器(CAN_FM1R)工作模式配置,在CAN主站中配置過濾器工作在標識符屏蔽位模式,過濾出一組標識符,CAN從站過濾器工作模式在標識符列表模式,只接受發(fā)往自己的報文。CAN位時間的設定,是在CAN位時序寄存器(CAN_BTR)中設置。CAN的波特率設置如式(2)。
(2)
式中:tBS1=tq×(TS1[3:0]+1);tBS2=tq×(TS2[2:0]+1);tq=(BRP[9:0]+1)×tPCLK;tPCLK=APB時鐘的時間周期。
設置TS1=6,TS2=7和BRP=4,在APB1頻率為36MHz的條件下,即可得出波特率為450kHz。
CAN數據幀發(fā)送主要包括起始幀、仲裁段(基本ID、擴展幀IDE和遠程幀RTR設定)、控制端(數據段字節(jié)數LEN)、數據段(可包含8個字節(jié))、CRC段(檢查幀傳輸錯誤)、ACK段(確認是否正確接收)和幀結束段。
u8Can_Tx_Msg(u32 id,u8 ide,u8 rtr,u8 len u8 *canbuf)
//返回值:0~3,郵箱編號.0XFF,無有效郵箱
voidCan_Rx_Msg(u8 fifox,u32 *id,u8 *ide,u8 *rtr,u8 *len,u8 *canbuf)
//fifox:郵箱號
顯示初始化流程為STM32和TFTLCD模塊相連IO口初始化、硬復位LCD、初始化序列、設置坐標、寫GRAM指令、寫入顏色數據、LCD顯示,顯示各從站通道對應的顯示位置。觸摸屏初始化為讀取LCD ID判斷是否為電容屏、執(zhí)行OTT2001A初始化代碼、進入觸摸屏測試程序。
在壓力測試過程中,從站板子上電后,由于橋路的不平衡,運放失調電壓等影響,所以輸出的電壓不等于零。點擊CAN主站觸摸屏進入調零模式,從站STM32接收經AD7680轉換的放大濾波信號,在STM32內置數模轉換DAC及AD7680輸出上述規(guī)定的零點電壓值1.65 V時和程序中設定的零點值存在一定的偏差,因此程序中添加了調零修正值tlb,如式(3)。
(3)
lingdian=0x8C10;//零點設定值
tiaoling[0] =Get_AD7680_Average(10);//STM32讀取十次取平均值
DAC_SetChannel2Data(DAC_Align_12b_R,0x0000);//設定輸出電壓0V
tiaoling[1] =Get_AD7680_Average(10);//讀取十次取平均值
DAC_SetChannel2Data(DAC_Align_12b_R,0x0fff);//設定輸出電壓3.3V
tiaoling[2] =Get_AD7680_Average(10);//讀取十次取平均值
tiaolingg=(tiaoling[0] +tlb)>>4;//加上調零補償值并右移四位以12位DA輸出 tlb由式(3)得出
DAC_SetChannel2Data(DAC_Align_12b_R,tiaolingg);//設定修正后的值輸出
tiaoling[0] =Get_AD7680_Average(10);//再次讀取
將最后讀取數值通過CAN通信傳輸到主站,標準標識符代表通道號,數據段包括2個字節(jié)。主站將16進制數轉換成十進制并在觸摸屏上顯示,此時進入從站通道逐一調零模式,程序退出上述設定調零修正值程序,針對各從站通道一一進行調零操作,從站STM32通過DAC1輸出相應的電壓值,對調零電壓進行更改;從站通道同時在接收傳感器信號及發(fā)送數據,實現了觸摸屏上循環(huán)顯示,多次調零,直至調整至零位,達到精度要求。開始數據采集,其流程圖如圖7所示。
圖7 調零程序流程圖
以STM32微處理器為核心,觸摸屏為人機交互界面,實現了基于CAN總線的多通道信號調理。CAN總線通信可靠,抗干擾能力強,可擴展性強,傳輸速度高,對于火箭武器的現場測試環(huán)境具有良好的適應性。通過微處理器的控制,可以實現反復調零,保證精度,測試者能直觀地觀察到調零信號大小,增加了信號調理的可靠性,同時也解決了測試時傳統(tǒng)手工調零的繁瑣,提升了便捷性,具有較好的實用價值。