0 引言
由于噴繪機噴繪過程中采用的是壓電噴頭工作原理,為保證噴繪出圖像清晰細膩,噴繪機需要在同一溫度下提供穩定的驅動電壓對壓電晶體進行控制。如何在精準的條件下根據室內溫度實時、快速、方便地更改驅動電壓和配置數據值得研究。
1 系統設計理念
噴頭的驅動電壓VDD2(t)取決于噴頭容積電壓Vrank、基于不同廠家不同顏色的油墨粘滯度而提供每色油墨與標準油墨的修正值Voffset電壓、不同顏色的油墨在不同溫度下需要的驅動電壓補償值Vdiff(t),即VDD2(t)=Vrank+Voffset+Vdiff(t)。不同顏色的油墨在不同的溫度下驅動電壓的補償值Vdiff(t),稱之為T-V數據。
不同廠家油墨溫壓數據不同,廠家會根據每種墨水的種類和顏色在出廠前給出一組關于墨水在不同溫度下的電壓補償值,根據噴頭墨腔內部墨水溫度變化動態地調整每個噴頭的驅動電壓以保證噴射出的墨水點滴大小一致、視覺效果更清晰。為防止在掉電的情況下數據丟失和避免不小心更改,數據通常存儲在只讀存儲器中。EEPROM存儲量有限又需存儲不同種類的T—V數據時,可以將數據通過算法[2]進行壓縮后存儲在ROM中。當今市場噴繪機數量越來越多,出于對噴繪機性能考略,本設計在溫壓數據讀取時避免使用算法降低速度,借助嵌入式經典的“空間換時間”理論,以日本精工集團的IRH1513D噴頭為研究對象,在24C16EEPROM中存儲配置數據。每次初始化后通過I2C通信機制讀數據,工作時噴頭需要更新電壓時通過DMA方式快速傳送溫度數值(A/D轉化值),迅速更新噴頭所需驅動電壓。過程中發現噴頭工作有誤差時借助顯示工具設置按鍵對其校驗,過程中適當改進運算形式來提高噴頭控制系統效率。
2 基于系統的硬件設計
圖1為控制系統硬件結構建構。從圖可看出設計中以STM32為主控,選取支持I2C通信機制、2 KB存儲量的24C16EEPROM作為外部存儲器,主控中集成的I2C 2的時鐘線SCL(PB10引腳)和SDA線(PB11引腳)與EEPROM的SCL和SDA分別通過外接一個上拉4.7 k?贅電阻連接。設計中主控集成I2C 2作為外部數據存儲器的時鐘和數據的發送,24c16EEPROM作為從設備,選取200 kHz的讀取速度。通過主控中的I/O口讀取溫度模擬量,顯示調整數據時采用UART或128x64LCD,采用128x64的靜態LCD主要方便客戶使用,研發者主要使用UART進行校正,外擴按鍵為了校驗誤差或測試噴頭狀態等。上電開始和結束時需給噴頭發送開關波形數據、命令,工作時讀取噴頭的狀態需要實時更改主控PWM即補償電壓。系統中硬件按鍵消抖在主控中延時實現,通過按鍵可進入校驗、T-V數據輸入、噴頭測試狀態。為快速處理數據,主控內A/D轉化值借助DMA傳輸方式。
控制系統采用一個主控STM32控制一個噴頭形式,所以外存儲上不需存儲墨水的顏色和控制噴頭型號等數據,噴頭采用日本精工集團的IRH1513D。系統上電初始化后,主控通過I2C通信機制把24C16EEPROM作為從設備讀取噴頭Vrank容積電壓、溫壓曲線、開關波形等數據。而且此程序中使用容積電壓Vrank、Voffset和ADCValOff以十倍進行存儲運算,每個數據定義2 B即16 bit。綜合考略24C16EEPROM外存儲單元,地址分配設計為:地址0x00~0x166共358 B存儲溫壓偏移曲線數據;地址0x200~0x201存儲16 B墨水的容積電壓Vrank;地址0x202~0x203存儲此種油墨修正電壓Voffset;地址0x204~0x205存儲噴頭25℃時需要校準參數本底偏移值AdcValBOff;地址0x206~0x207存儲當PWM OCR1為高點電壓比較值時所對應十倍電壓Hm;地址0x208~0x209存儲當PWM OCR1為低點電壓比較值時所對應十倍電壓Lm;0x210~0x221共12個地址空間存儲噴頭必要的配置數據;地址0x300~0x33c共60 B用于存儲噴頭的開波形數據;地址0x340~73c共60 B用于存儲噴頭的關波形數據。
3 基于系統的軟件設計
整個軟件的架構中分別對串行通信、24c16EEPROM存儲、改進運算形式、主控狀態機切換等進行設計與研究。最后借助PC上串口調試器或外擴128x64LCD顯示人機交互來校正噴繪機的噴頭。
3.1 通信界面的設計
通信界面是為用戶簡單、方便地更換墨水的T-V數據和校正噴繪機噴頭而設置的顯示工具。圖2為串行通信的流程,從圖中可以看出,主菜單在調試過程中,通過選項來進入溫度校準、電壓校準、容積電壓Vrank輸入或是配置數據的輸入。借助于串口通信,在需要更新墨水的T—V數據時,無論用戶是否熟練新產品的使用,都可直觀操作把廠家提供的溫壓數據通過選擇不同命令符寫入24c16EEPROM。
3.2 基于24c16EEPROM存儲設計
根據I2C的通信機制,首先主機發送一個起始條件,從機接收到后回發一個ACK響應信號。然后主機發送地址字節(地址字節為7位,最后一位為讀寫標志位),進行數據的讀寫傳輸。每次接收方回發一個ACK。最后主機發送停止信號結束通信。24c16EEPROM芯片手冊,在發送地址7位中前四位必須是1010,此處DEVICE ADDRESS(設備地址)是通過(0xao|(讀寫地址))發送。通信時調用函數E2416_BufWr((u8*)&D0_confOn[0],ONWAVE_ADDR,NbrOfReg)來進行寫操作設計,其中函數的參數(u8*)&D0_confOn[0]定義為首個無符號字節數據地址,ONWAVE_ADDR參數是指向寫入到EEPROM的地址,參數NbrOfReg是寫入數據的個數。
此處I2C通信模塊的整體設計可通過程序圖3進行描述,圖中發送兩個EEPROM地址,第一個EEPRON地址是EEPROM設備地址,從第二個EEPROM是存儲數據首地址。2416EEPROM規定每一頁為16 B,程序在設置過程中以E2416_PageWr()對頁進行寫操作,以E2416_ByteWr()對字節進行寫操作,寫入到EEPROM指定的地址,同樣設置E2416_BufRe()、E2416_PageRe()進行頁讀操作以及E2416_ByteRe()進行字節讀操作,從指定的地址中讀數據。若需更改墨水的數據時借助串口交互的選擇,把需要數據通過I2C通信機制直接寫入到24c16數據存儲EEPROM中,實際上寫入到了預留的同一塊ROM中。而且在噴頭實際工作過程中可把確定的數據在上電初期通過函數E2416_BufRe()以及E2416_PageRe()來讀取開關波形及噴頭配置數據。
3.3 改進運算形式
根據以上設計,噴頭開始工作前,STM32主控制器從24c16EEPROM的外存儲通過I2C通信機制讀配置數據,其中包括存儲高電壓時PWM OCR1比較值Hm和存儲低電壓時PWM OCR1比較值Lm,程序中定義兩個比較值,高低電壓Hx、Lx是對應的實際高低電壓的10倍。根據理論知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倍。不難看出運算形式及結果沒有改變,而存儲上需占更多空間,但是不改則需要浮點型數的運算。相比較而言,提高10倍雖增加存儲空間但較少計算時間,提高執行效率。
3.4 主控狀態機切換設計
STM32主控程序設計是整個控制系統核心。為了優化系統設計,提高主控的處理速度,此處設計采用如圖4主控狀態切換機制。從圖中可看出,系統上電開始后進入InitConfig狀態初始化時鐘、I/O口、串口、DMA、A/D、定時器、I2C、緩沖區等。若使能液晶屏,則液晶屏開始顯示,然后通過DMA發送I2C從設備地址進入Send Slave Add狀態。如果地址匹配,則進入Read Data狀態,即從EEPROM中讀取噴頭的配置數據。若VERIFY_ON=1(PA^8=0),則按鍵按下進入UART adjust狀態(文件的配置),若Sw1_on==1,即按鍵按下進入Nozzle text狀態即噴頭測試,否則進入ADC狀態。轉化完后通過DMA傳送數據進入DMA IRQ狀態,在此狀態下進行16次平滑處理,計算完后進入Update Voltage狀態然后輸出PWM即電壓提供給噴頭,使噴頭精確工作。初始工作讀完數據后首次A/D轉化由軟件啟動,工作后A/D轉化是在DMA中斷下進行,16次平滑處理后開啟A/D轉化使能。
4 系統測試
結合系統總體架構的軟件和硬件平臺以及過程方法步驟的闡述,最終測試結果如圖5、6所示。圖5顯示了基于I2C通信機制EEPROM存儲驗證。為驗證結果的正確,向24C16EEPROM寫入數據0x0a、0x0b并用示波器觀察波形圖,其中通道2為SCL波形,通道1為SDA波形,結合兩個通道信號和寫入數據驗證此系統存儲設計可行。圖6是借助串口收發機制來更新墨水T-V數據、噴頭配置文件以及校驗顯示,從圖可看出UART采用的是并口COM1、波特率為115 200 b/s,8 bit數據位和1 bit停止位,無奇偶校驗收發機制下可正確顯示主控的收發信息與程序設計一致。圖6中主校菜單下通過串口向STM32發送“數字選項”來進入溫度校準、12 V輸出校準、29 V輸出校準、容積電壓Vrank輸出等菜單。圖中是在選擇“9”下噴頭的結合系統總體架構的軟件和硬件平臺以及過程方法步驟的闡述,最終測試結果如圖5、6所示。圖5顯示了基于I2C通信機制EEPROM存儲驗證。為驗證結果的正確,向24C16EEPROM寫入數據0x0a、0x0b并用示波器觀察波形圖,其中通道2為SCL波形,通道1為SDA波形,結合兩個通道信號和寫入數據驗證此系統存儲設計可行。圖6是借助串口收發機制來更新墨水T-V數據、噴頭配置文件以及校驗顯示,從圖可看出UART采用的是并口COM1、波特率為115 200 b/s,8 bit數據位和1 bit停止位,無奇偶校驗收發機制下可正確顯示主控的收發信息與程序設計一致。圖6中主校菜單下通過串口向STM32發送“數字選項”來進入溫度校準、12 V輸出校準、29 V輸出校準、容積電壓Vrank輸出等菜單。圖中是在選擇“9”下噴頭的配置數據輸入時的顯示,包括噴頭配置數據、開關波形數據以及沒有顯示全的溫壓曲線等數據。
5 總結
隨著噴繪技術的發展,對噴頭控制系統的要求越來越高。本設計基于簡單、方便的考慮,以STM32作為主控制平臺,以24c16EEPROM作為外部存儲,結合軟件設計出噴頭控制系統。通過實踐和理論研究證明,系統不僅簡捷、方便,而且更改容易且執行過程中在一定程度上提高了系統的效率,達到了理想的預期效果,但此控制設計系統沒能面向市場,還存在不少缺陷和不足,需以后加以彌補和改進。也希望將來此設計系統可以廣泛應用于噴繪機噴頭控制系統中。
編輯:hfy
-
控制系統
+關注
關注
41文章
6550瀏覽量
110498 -
噴繪技術
+關注
關注
0文章
2瀏覽量
934
發布評論請先 登錄
相關推薦
評論