《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于STM32在噴繪機噴頭控制系統(tǒng)的設計與實現(xiàn)
基于STM32在噴繪機噴頭控制系統(tǒng)的設計與實現(xiàn)
2015年微型機與應用第1期
劉 晉,蘇 臣
(遼寧師范大學 計算機與信息技術學院,遼寧 大連 116081)
摘要: 選取STM32系列STM32F103RBT6作為噴頭的主控制系統(tǒng),將24c16EEPROM作為外部存儲器,通過I2C通信機制傳送噴頭T-V數(shù)據(jù)和配置數(shù)據(jù),借助UART或128x64LCD達到人機交互。經過理論分析和軟硬件結合測試,驗證了該噴頭控制系統(tǒng)的可行性和方便性。
Abstract:
Key words :

  摘  要: 選取STM32系列STM32F103RBT6作為噴頭的主控制系統(tǒng),將24c16EEPROM作為外部存儲器,通過I2C通信機制傳送噴頭T-V數(shù)據(jù)和配置數(shù)據(jù),借助UART或128x64LCD達到人機交互。經過理論分析和軟硬件結合測試,驗證了該噴頭控制系統(tǒng)的可行性和方便性。

  關鍵詞: STM32;24c16EEPROM;I2C;T-V數(shù)據(jù);噴繪機

0 引言

  由于噴繪機噴繪過程中采用的是壓電噴頭[1]工作原理,為保證噴繪出圖像清晰細膩,噴繪機需要在同一溫度下提供穩(wěn)定的驅動電壓對壓電晶體進行控制。如何在精準的條件下根據(jù)室內溫度實時、快速、方便地更改驅動電壓和配置數(shù)據(jù)值得研究。

1 系統(tǒng)設計理念

  噴頭的驅動電壓VDD2(t)取決于噴頭容積電壓Vrank、基于不同廠家不同顏色的油墨粘滯度而提供每色油墨與標準油墨的修正值Voffset電壓、不同顏色的油墨在不同溫度下需要的驅動電壓補償值Vdiff(t),即VDD2(t)=Vrank+Voffset+Vdiff(t)。不同顏色的油墨在不同的溫度下驅動電壓的補償值Vdiff(t),稱之為T-V數(shù)據(jù)。

  不同廠家油墨溫壓數(shù)據(jù)不同,廠家會根據(jù)每種墨水的種類和顏色在出廠前給出一組關于墨水在不同溫度下的電壓補償值,根據(jù)噴頭墨腔內部墨水溫度變化動態(tài)地調整每個噴頭的驅動電壓以保證噴射出的墨水點滴大小一致、視覺效果更清晰。為防止在掉電的情況下數(shù)據(jù)丟失和避免不小心更改,數(shù)據(jù)通常存儲在只讀存儲器中。EEPROM存儲量有限又需存儲不同種類的T—V數(shù)據(jù)時,可以將數(shù)據(jù)通過算法[2]進行壓縮后存儲在ROM中。當今市場噴繪機數(shù)量越來越多,出于對噴繪機性能考略,本設計在溫壓數(shù)據(jù)讀取時避免使用算法降低速度,借助嵌入式經典的“空間換時間”理論,以日本精工集團的IRH1513D噴頭為研究對象,在24C16EEPROM中存儲配置數(shù)據(jù)。每次初始化后通過I2C通信機制讀數(shù)據(jù),工作時噴頭需要更新電壓時通過DMA方式快速傳送溫度數(shù)值(A/D轉化值),迅速更新噴頭所需驅動電壓。過程中發(fā)現(xiàn)噴頭工作有誤差時借助顯示工具設置按鍵對其校驗,過程中適當改進運算形式來提高噴頭控制系統(tǒng)效率。

2 基于系統(tǒng)的硬件設計

001.jpg


  圖1為控制系統(tǒng)硬件結構建構。從圖可看出設計中以STM32為主控,選取支持I2C通信機制、2 KB存儲量的24C16EEPROM作為外部存儲器,主控中集成的I2C 2的時鐘線SCL(PB10引腳)和SDA線(PB11引腳)與EEPROM的SCL和SDA分別通過外接一個上拉4.7 k?贅電阻連接。設計中主控集成I2C 2作為外部數(shù)據(jù)存儲器的時鐘和數(shù)據(jù)的發(fā)送,24c16EEPROM作為從設備,選取200 kHz的讀取速度。通過主控中的I/O口讀取溫度模擬量,顯示調整數(shù)據(jù)時采用UART或128x64LCD,采用128x64的靜態(tài)LCD主要方便客戶使用,研發(fā)者主要使用UART進行校正,外擴按鍵為了校驗誤差或測試噴頭狀態(tài)等。上電開始和結束時需給噴頭發(fā)送開關波形數(shù)據(jù)、命令,工作時讀取噴頭的狀態(tài)需要實時更改主控PWM即補償電壓。系統(tǒng)中硬件按鍵消抖在主控中延時實現(xiàn),通過按鍵可進入校驗、T-V數(shù)據(jù)輸入、噴頭測試狀態(tài)。為快速處理數(shù)據(jù),主控內A/D轉化值借助DMA傳輸方式。

  控制系統(tǒng)采用一個主控STM32控制一個噴頭形式,所以外存儲上不需存儲墨水的顏色和控制噴頭型號等數(shù)據(jù),噴頭采用日本精工集團的IRH1513D。系統(tǒng)上電初始化后,主控通過I2C通信機制把24C16EEPROM作為從設備讀取噴頭Vrank容積電壓、溫壓曲線、開關波形等數(shù)據(jù)。而且此程序中使用容積電壓Vrank、Voffset和ADCValOff以十倍進行存儲運算,每個數(shù)據(jù)定義2 B即16 bit。綜合考略24C16EEPROM外存儲單元,地址分配設計為:地址0x00~0x166共358 B存儲溫壓偏移曲線數(shù)據(jù);地址0x200~0x201存儲16 B墨水的容積電壓Vrank;地址0x202~0x203存儲此種油墨修正電壓Voffset;地址0x204~0x205存儲噴頭25℃時需要校準參數(shù)本底偏移值AdcValBOff;地址0x206~0x207存儲當PWM OCR1為高點電壓比較值時所對應十倍電壓Hm;地址0x208~0x209存儲當PWM OCR1為低點電壓比較值時所對應十倍電壓Lm;0x210~0x221共12個地址空間存儲噴頭必要的配置數(shù)據(jù);地址0x300~0x33c共60 B用于存儲噴頭的開波形數(shù)據(jù);地址0x340~73c共60 B用于存儲噴頭的關波形數(shù)據(jù)。

3 基于系統(tǒng)的軟件設計

  整個軟件的架構中分別對串行通信、24c16EEPROM存儲、改進運算形式、主控狀態(tài)機切換等進行設計與研究。最后借助PC上串口調試器或外擴128x64LCD顯示人機交互來校正噴繪機的噴頭。

  3.1 通信界面的設計

002.jpg

  通信界面是為用戶簡單、方便地更換墨水的T-V數(shù)據(jù)和校正噴繪機噴頭而設置的顯示工具。圖2為串行通信的流程,從圖中可以看出,主菜單在調試過程中,通過選項來進入溫度校準、電壓校準、容積電壓Vrank輸入或是配置數(shù)據(jù)的輸入。借助于串口通信,在需要更新墨水的T—V數(shù)據(jù)時,無論用戶是否熟練新產品的使用,都可直觀操作把廠家提供的溫壓數(shù)據(jù)通過選擇不同命令符寫入24c16EEPROM。

  3.2 基于24c16EEPROM存儲設計

  根據(jù)I2C的通信機制,首先主機發(fā)送一個起始條件,從機接收到后回發(fā)一個ACK響應信號。然后主機發(fā)送地址字節(jié)(地址字節(jié)為7位,最后一位為讀寫標志位),進行數(shù)據(jù)的讀寫傳輸。每次接收方回發(fā)一個ACK。最后主機發(fā)送停止信號結束通信。24c16EEPROM芯片手冊,在發(fā)送地址7位中前四位必須是1010,此處DEVICE ADDRESS(設備地址)是通過(0xao|(讀寫地址))發(fā)送。通信時調用函數(shù)E2416_BufWr((u8*)&D0_confOn[0],ONWAVE_ADDR,NbrOfReg)來進行寫操作設計,其中函數(shù)的參數(shù)(u8*)&D0_confOn[0]定義為首個無符號字節(jié)數(shù)據(jù)地址,ONWAVE_ADDR參數(shù)是指向寫入到EEPROM的地址,參數(shù)NbrOfReg是寫入數(shù)據(jù)的個數(shù)。

003.jpg

  此處I2C通信模塊的整體設計可通過程序圖3進行描述,圖中發(fā)送兩個EEPROM地址,第一個EEPRON地址是EEPROM設備地址,從第二個EEPROM是存儲數(shù)據(jù)首地址。2416EEPROM規(guī)定每一頁為16 B,程序在設置過程中以E2416_PageWr()對頁進行寫操作,以E2416_ByteWr()對字節(jié)進行寫操作,寫入到EEPROM指定的地址,同樣設置E2416_BufRe()、E2416_PageRe()進行頁讀操作以及E2416_ByteRe()進行字節(jié)讀操作,從指定的地址中讀數(shù)據(jù)。若需更改墨水的數(shù)據(jù)時借助串口交互的選擇,把需要數(shù)據(jù)通過I2C通信機制直接寫入到24c16數(shù)據(jù)存儲EEPROM中,實際上寫入到了預留的同一塊ROM中。而且在噴頭實際工作過程中可把確定的數(shù)據(jù)在上電初期通過函數(shù)E2416_BufRe()以及E2416_PageRe()來讀取開關波形及噴頭配置數(shù)據(jù)。

  3.3 改進運算形式

  根據(jù)以上設計,噴頭開始工作前,STM32主控制器從24c16EEPROM的外存儲通過I2C通信機制讀配置數(shù)據(jù),其中包括存儲高電壓時PWM OCR1比較值Hm和存儲低電壓時PWM OCR1比較值Lm,程序中定義兩個比較值,高低電壓Hx、Lx是對應的實際高低電壓的10倍。根據(jù)理論知PWM OCR1的值和對應STM32輸出電壓成正比。當PWM OCR1的值高時,STM32輸出的電壓高。所以得比例(Hm-Lm)/(Hx-Lx)=(m-Lm)/(x-Lx),其中m代表任意時刻PWM OCR1的比較值,x代表任意時刻當PWM OCR1的比較值為m時所對應輸出電壓的10倍,化簡得m=(H_Lm*(x-Lx)+Lm*H_Lx)/H_Lx。讀到一個溫度,通過查表找到需要補償電壓,最后把補償電壓、修正電壓、容積電壓相加算出最后噴頭需要的電壓x,通過以上化簡知m=(H_Lm*(x-Lx)+Lm*H_Lx)/H_Lx,計算出PWM OCR1中需要值m改變PWM。噴頭工作的電壓是12 V~29 V,精確到0.1 V,在設計過程中把實際高低電壓Hx、Lx以及更改的輸出電壓擴大10倍。不難看出運算形式及結果沒有改變,而存儲上需占更多空間,但是不改則需要浮點型數(shù)的運算。相比較而言,提高10倍雖增加存儲空間但較少計算時間,提高執(zhí)行效率。

  3.4 主控狀態(tài)機切換設計

004.jpg

  STM32主控程序設計是整個控制系統(tǒng)核心。為了優(yōu)化系統(tǒng)設計,提高主控的處理速度,此處設計采用如圖4主控狀態(tài)切換機制。從圖中可看出,系統(tǒng)上電開始后進入InitConfig狀態(tài)初始化時鐘、I/O口、串口、DMA、A/D、定時器、I2C、緩沖區(qū)等。若使能液晶屏,則液晶屏開始顯示,然后通過DMA發(fā)送I2C從設備地址進入Send Slave Add狀態(tài)。如果地址匹配,則進入Read Data狀態(tài),即從EEPROM中讀取噴頭的配置數(shù)據(jù)。若VERIFY_ON=1(PA^8=0),則按鍵按下進入UART adjust狀態(tài)(文件的配置),若Sw1_on==1,即按鍵按下進入Nozzle text狀態(tài)即噴頭測試,否則進入ADC狀態(tài)。轉化完后通過DMA傳送數(shù)據(jù)進入DMA IRQ狀態(tài),在此狀態(tài)下進行16次平滑處理,計算完后進入Update Voltage狀態(tài)然后輸出PWM即電壓提供給噴頭,使噴頭精確工作。初始工作讀完數(shù)據(jù)后首次A/D轉化由軟件啟動,工作后A/D轉化是在DMA中斷下進行,16次平滑處理后開啟A/D轉化使能。

4 系統(tǒng)測試

  結合系統(tǒng)總體架構的軟件和硬件平臺以及過程方法步驟的闡述,最終測試結果如圖5、6所示。圖5顯示了基于I2C通信機制EEPROM存儲驗證。為驗證結果的正確,向24C16EEPROM寫入數(shù)據(jù)0x0a、0x0b并用示波器觀察波形圖,其中通道2為SCL波形,通道1為SDA波形,結合兩個通道信號和寫入數(shù)據(jù)驗證此系統(tǒng)存儲設計可行。圖6是借助串口收發(fā)機制來更新墨水T-V數(shù)據(jù)、噴頭配置文件以及校驗顯示,從圖可看出UART采用的是并口COM1、波特率為115 200 b/s,8 bit數(shù)據(jù)位和1 bit停止位,無奇偶校驗收發(fā)機制下可正確顯示主控的收發(fā)信息與程序設計一致。圖6中主校菜單下通過串口向STM32發(fā)送“數(shù)字選項”來進入溫度校準、12 V輸出校準、29 V輸出校準、容積電壓Vrank輸出等菜單。圖中是在選擇“9”下噴頭的配置數(shù)據(jù)輸入時的顯示,包括噴頭配置數(shù)據(jù)、開關波形數(shù)據(jù)以及沒有顯示全的溫壓曲線等數(shù)據(jù)。

5 總結

  隨著噴繪技術的發(fā)展,對噴頭控制系統(tǒng)的要求越來越高。本設計基于簡單、方便的考慮,以STM32作為主控制平臺,以24c16EEPROM作為外部存儲,結合軟件設計出噴頭控制系統(tǒng)。通過實踐和理論研究證明,系統(tǒng)不僅簡捷、方便,而且更改容易且執(zhí)行過程中在一定程度上提高了系統(tǒng)的效率,達到了理想的預期效果,但此控制設計系統(tǒng)沒能面向市場,還存在不少缺陷和不足,需以后加以彌補和改進。也希望將來此設計系統(tǒng)可以廣泛應用于噴繪機噴頭控制系統(tǒng)中。

參考文獻

  [1] 周峰江.壓電式噴頭的基本原理和應用[J].印染,2003,29(4):259-283.

  [2] 劉晉,顧彬彬,張秋風.數(shù)字噴繪機墨水溫壓曲線的壓縮存儲方案[J].微型機與應用,2012,31(3):82-84.


此內容為AET網站原創(chuàng),未經授權禁止轉載。