萬(wàn)國(guó)春, 司玉棟, 童美松
(同濟(jì)大學(xué)電子與信息工程學(xué)院,上海 201804)
通過(guò)紅綠藍(lán)三基色混合實(shí)現(xiàn)調(diào)色調(diào)光,RGB-LED越來(lái)越被廣泛地用于汽車(chē)電子行業(yè),例如氛圍燈場(chǎng)景,用以滿足內(nèi)飾要求[1]。傳統(tǒng)的RGB-LED 控制方式包括車(chē)內(nèi)按鈕按鍵、中控臺(tái)等方式,存在成本較高、使用不便、缺乏體驗(yàn)感等短處。觸摸串口屏具備響應(yīng)速度高、性能穩(wěn)定和易于維護(hù)的特點(diǎn)[2],結(jié)合組態(tài)設(shè)計(jì)可以精簡(jiǎn)功能開(kāi)發(fā),提供良好的人機(jī)操作界面,使交互性大大提升。
本文結(jié)合組態(tài)設(shè)計(jì)思想和嵌入式開(kāi)發(fā),利用串口通信和LIN原理完成觸控指令到RGB-LED 的控制數(shù)據(jù)定義,基于PWM 實(shí)現(xiàn)調(diào)色效果。系統(tǒng)面向汽車(chē)電子領(lǐng)域,開(kāi)發(fā)的觸控系統(tǒng)不僅有助于培養(yǎng)學(xué)生技能而且具有一定的實(shí)用價(jià)值。
本系統(tǒng)包括串口屏、微控制器模塊和RGB-LED模塊。系統(tǒng)總體方案是首先對(duì)串口屏完成組態(tài)設(shè)計(jì),提供人機(jī)操作界面(HMI),微控制器模塊接收來(lái)自串口屏的觸控指令后進(jìn)行指令解析,經(jīng)LIN 協(xié)議端口轉(zhuǎn)發(fā)至PWM恒流驅(qū)動(dòng)模塊,輸出占空比不同的三基色通道驅(qū)動(dòng)信號(hào),實(shí)現(xiàn)RGB-LED的調(diào)光調(diào)色。
其中串口屏組態(tài)設(shè)計(jì)面向顯示區(qū)和觸摸區(qū),觸摸區(qū)實(shí)現(xiàn)16 種常用顏色觸摸點(diǎn)亮、占空比和亮度輸入點(diǎn)亮;顯示區(qū)則實(shí)現(xiàn)對(duì)應(yīng)占空比數(shù)據(jù)顯示。組態(tài)設(shè)計(jì)基于變量存儲(chǔ)器的規(guī)劃,完成后觸控操作和串口指令實(shí)現(xiàn)綁定;微控制器模塊包括中斷模塊和串口/LIN接口模塊,中斷模塊接收串口數(shù)據(jù)進(jìn)入中斷解析服務(wù),經(jīng)LIN協(xié)議端口轉(zhuǎn)發(fā);RGB-LED 模塊包括PWM 恒流驅(qū)動(dòng)模塊和燈頭?;诮M態(tài)設(shè)計(jì)的車(chē)用RGB-LED 觸控實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)框圖如圖1 所示。
圖1 實(shí)驗(yàn)系統(tǒng)結(jié)構(gòu)框圖
串口屏組態(tài)設(shè)計(jì)的主要內(nèi)容是人機(jī)交互界面的制作和控件配置,最終實(shí)現(xiàn)觸控和參數(shù)指示功能。
選擇DMT10600T102_07WT 電容式觸摸串口屏,即DGUS屏。軟硬件開(kāi)發(fā)體系如圖2 所示,串口屏采用直接變量驅(qū)動(dòng)顯示方式,所有的顯示和操作基于預(yù)先設(shè)置好的變量配置文件[3],支持文本、圖標(biāo)、圖形的TFT驅(qū)動(dòng)顯示。人機(jī)交互界面使用組態(tài)軟件進(jìn)行變量規(guī)劃和具體的控件定義,生成13.bin、14.bin、22.bin文件和config.txt文件,通過(guò)SD卡下載工程。
圖2 系統(tǒng)軟硬件開(kāi)發(fā)體系框圖
串口屏包含F(xiàn)LASH、寄存器、變量存儲(chǔ)器和曲線緩沖區(qū)4 類(lèi)存儲(chǔ)空間。其中變量存儲(chǔ)器大小為56 KB,地址為0x0000 ~0x6FFF,為用戶自定義變量開(kāi)發(fā)所使用,服務(wù)顯示變量和格式控制需求。
由于串口屏的工作模式和界面狀態(tài)完全由數(shù)據(jù)變量控制,因此串口指令只需要對(duì)變量進(jìn)行讀、寫(xiě)即可,指令集一共有5 條指令,即0x80、0x81、0x82、0x83、0x84指令,分別對(duì)應(yīng)對(duì)寄存器寫(xiě)、寄存器讀、變量存儲(chǔ)器寫(xiě)、變量存儲(chǔ)器讀和曲線緩沖區(qū)寫(xiě)操作,基本實(shí)現(xiàn)了用戶“零代碼”完成觸摸屏人機(jī)交互[4]。串口指令結(jié)構(gòu)如圖3 所示。
圖3 串口指令結(jié)構(gòu)
系統(tǒng)實(shí)現(xiàn)16 種常用顏色觸摸點(diǎn)亮、占空比和亮度輸入點(diǎn)亮和參數(shù)顯示功能。根據(jù)功能需求,定義幀頭為5AA5,利用0x82、0x83 串口指令,即通過(guò)對(duì)變量存儲(chǔ)器特定地址的數(shù)據(jù)進(jìn)行讀寫(xiě)操作,并配合組態(tài)軟件實(shí)現(xiàn)開(kāi)發(fā)。
具體地,首先制作人機(jī)交互頁(yè)面,頁(yè)面包括觸摸區(qū)的常用顏色、占空比輸入框、亮度輸入框和對(duì)應(yīng)參數(shù)顯示框。其中,常用顏色利用“同步數(shù)據(jù)返回”控件進(jìn)行設(shè)置,定義為觸摸色塊則通過(guò)串口發(fā)送變量存儲(chǔ)器規(guī)劃地址內(nèi)存儲(chǔ)的數(shù)據(jù),這里規(guī)劃地址為0x000 ~00x000F,對(duì)應(yīng)地址存儲(chǔ)數(shù)據(jù)為字符00 ~FF。占空比和亮度輸入控制和顯示則利用“變量數(shù)據(jù)錄入”和“數(shù)據(jù)變量顯示”控件聯(lián)合設(shè)置,定義為輸入有效數(shù)據(jù)后顯示并發(fā)送“5A A5 06 83 00 XX 01 00 YY”的串口指令,指令中XX是30、31、32、33 之一,對(duì)應(yīng)字符0、1、2、3,用來(lái)區(qū)分三基色和亮度,YY 即輸入的具體數(shù)據(jù)。另外地址和功能標(biāo)號(hào)可以在系統(tǒng)初始化時(shí)顯示。
HMI組態(tài)設(shè)計(jì)界面如圖4 所示,串口屏組態(tài)設(shè)計(jì)完成后變量地址和數(shù)據(jù)分配如表1 所示。
表1 變量地址和數(shù)據(jù)分配
圖4 HMI組態(tài)設(shè)計(jì)界面
模塊選擇Kinetis EA MCU,其內(nèi)部架構(gòu)如圖5 所示,集成了低功耗Cortex-M0 +內(nèi)核和嵌入式閃存,系統(tǒng)外設(shè)包括電源管理模塊、內(nèi)外振蕩器、低壓檢測(cè)、WDG、單周期GPIO 和位操作引擎[5],并且具有支持LIN協(xié)議的UART 接口,脈沖寬度計(jì)時(shí)器和按鍵中斷模塊。
圖5 Kinetis EA MCU內(nèi)部架構(gòu)
LIN是一種基于UART/SCI的低成本開(kāi)放式串行通訊總線,是對(duì)包括CAN總線在內(nèi)的多種汽車(chē)網(wǎng)絡(luò)的補(bǔ)充[6]。報(bào)文包括報(bào)頭與響應(yīng)兩部分,主機(jī)負(fù)責(zé)發(fā)送報(bào)頭,從機(jī)接收?qǐng)?bào)頭并對(duì)所含信息進(jìn)行解析,然后決定是否發(fā)送應(yīng)答。一個(gè)完整的LIN 信息幀包括間隔場(chǎng)、同步場(chǎng)、標(biāo)識(shí)符場(chǎng)、數(shù)據(jù)場(chǎng)以及校驗(yàn)和場(chǎng)[7],幀的結(jié)構(gòu)如圖6 所示。其中標(biāo)識(shí)符場(chǎng)包括6 位幀ID 和2 位奇偶校驗(yàn)位,幀ID標(biāo)識(shí)了幀的類(lèi)別和目的地,從機(jī)據(jù)此作出接收/發(fā)送/忽略應(yīng)答動(dòng)作。根據(jù)幀ID 的不同可以將幀分為信號(hào)攜帶幀、診斷幀和保留幀[8]。
圖6 LIN幀的結(jié)構(gòu)
本實(shí)驗(yàn)系統(tǒng)利用Kinetis EA64 串行接口1,即UART1 接收串口屏數(shù)據(jù),UART1_BUF 串口緩沖區(qū)暫存數(shù)據(jù),MCU主芯片解析收到的觸控指令后通過(guò)RxD_LIN和TxD_LIN引腳經(jīng)附設(shè)的LIN 通信收發(fā)器轉(zhuǎn)發(fā)至RGB-LED模塊。
微控制器附設(shè)LIN通信收發(fā)器電路圖設(shè)計(jì)如圖7所示,其核心MC33662LEF 是一款專門(mén)用于汽車(chē)LIN子總線應(yīng)用的物理層組件[9]。同時(shí),通過(guò)LIN 描述文件(LDF)自定義使用幀ID =15,PID =55 的信號(hào)攜帶幀點(diǎn)亮RGB-LED。點(diǎn)燈時(shí),恒流驅(qū)動(dòng)模塊通過(guò)PWM方波調(diào)節(jié)占空比來(lái)控制LED快速地閃爍點(diǎn)亮,由于人眼具有視覺(jué)惰性,當(dāng)PWM 的頻率足夠高,人眼無(wú)法察覺(jué)閃爍[10-12]。
圖7 微控制器附設(shè)LIN通信接口電路圖
PWM恒流驅(qū)動(dòng)模塊選擇MLX81108 芯片,LRTB GVSG燈頭。芯片內(nèi)部集成了LIN 收發(fā)器和控制器、穩(wěn)壓器、16 位微控制器,支持16 位電流調(diào)制以及LED色彩與老化補(bǔ)償,具備LIN自動(dòng)配置功能。
模塊核心電路原理圖如圖8 所示,該模塊接收微控制器模塊發(fā)出的LIN信號(hào)之后,連接RGB-LED燈頭的芯片HV0、HV1、HV2 引腳將輸出三基色通道驅(qū)動(dòng)電流完成點(diǎn)燈。三基色通道驅(qū)動(dòng)電流大小通過(guò)PWM調(diào)制設(shè)定。
圖8 RGB-LED模塊核心電路圖
軟件設(shè)計(jì)包括微控制器模塊和RGB-LED 模塊的軟件設(shè)計(jì),目的是微控制器模塊可以實(shí)現(xiàn)串口屏數(shù)據(jù)的接收、解析和轉(zhuǎn)發(fā),RGB-LED模塊可以實(shí)現(xiàn)PWM驅(qū)動(dòng)點(diǎn)燈。微控制器模塊的軟件設(shè)計(jì)流程如圖9 所示。首先進(jìn)行CLK、UART、LIN 初始化,完成系統(tǒng)時(shí)鐘、串口、LIN 通信的基本設(shè)置,然后對(duì)LIN 進(jìn)度表設(shè)置,確定事件觸發(fā)幀和診斷幀兩種消息格式和相應(yīng)的幀ID,之后開(kāi)啟UART1 中斷,完成地址初始化顯示,進(jìn)入中斷等待階段。
圖9 微控制器模塊軟件流程圖
根據(jù)串口屏組態(tài)設(shè)計(jì)的結(jié)果,觸控指令與預(yù)定格式的串口指令相對(duì)應(yīng)。當(dāng)串口屏觸摸區(qū)被觸摸即發(fā)出組態(tài)設(shè)計(jì)時(shí)的串口指令,微控制器接收數(shù)據(jù)存入U(xiǎn)ART1_BUF數(shù)組,然后進(jìn)行解析轉(zhuǎn)發(fā)。具體過(guò)程:數(shù)組將存入以下兩類(lèi)5 種指令數(shù)據(jù):00 ~FF和5A A5 06 83 00 XX 01 00 YY,其中第6 位XX 為30、31、32、33之一,也就是字符“0”“1”“2”“3”之一,而第9 位YY為具體數(shù)值。然后判斷數(shù)組第1 位和XX,當(dāng)?shù)? 位判得00 ~FF時(shí)執(zhí)行16 種常用顏色點(diǎn)亮;判斷XX為“3”時(shí)進(jìn)行亮度調(diào)整,YY 就是亮度值,如果是“0”“1”“2”,YY就是RGB具體值,實(shí)現(xiàn)三基色調(diào)光。
微控制器模塊軟件設(shè)計(jì)完成后,即可從串口屏觸控?cái)?shù)據(jù)中提取出三基色和亮度值4 個(gè)量,最后通過(guò)LIN口發(fā)給RGB-LED 模塊,通過(guò)PWM 驅(qū)動(dòng)。RGBLED模塊的軟件設(shè)計(jì)較為簡(jiǎn)單,其流程圖如10 所示。
圖10 RGB-LED模塊軟件流程圖
系統(tǒng)各模塊完成電性連接并上電后,串口屏HMI正常顯示,可以進(jìn)行觸控操作,系統(tǒng)預(yù)期功能實(shí)現(xiàn),整體實(shí)物圖如11 所示。開(kāi)始進(jìn)行系統(tǒng)功能測(cè)試,首先16 種常用顏色點(diǎn)亮測(cè)試,其中綠色點(diǎn)亮效果如圖12所示。
圖11 系統(tǒng)整體實(shí)物圖
圖12 綠色點(diǎn)燈
三基色和亮度輸入點(diǎn)燈測(cè)試中,顏色和亮度設(shè)置框內(nèi)分別輸入255、0、0、52,即希望點(diǎn)亮紅燈,亮度為52。此時(shí),串口成功收到觸摸屏四條指令,如圖13 中紅綠藍(lán)黃矩形框中的指令分別為三基色和亮度控制指令,每條指令最后一位即為輸入數(shù)值的16 進(jìn)制表示,即FF、00、00、34,實(shí)測(cè)結(jié)果為成功點(diǎn)亮,如圖14 所示。
圖13 三基色和亮度輸入時(shí)發(fā)送的指令
圖14 三基色和亮度輸入點(diǎn)燈
本實(shí)驗(yàn)基于組態(tài)設(shè)計(jì)和Kinetis EA 微控制器模塊構(gòu)建了面向車(chē)用RGB-LED 的觸控系統(tǒng)。實(shí)驗(yàn)涉及串口屏組態(tài)設(shè)計(jì)、嵌入式開(kāi)發(fā)、PWM 的三基色調(diào)色等知識(shí),同時(shí)對(duì)于學(xué)生熟悉UART通信協(xié)議、LIN通信協(xié)議的基本運(yùn)用有更加深刻的理解。另外本實(shí)驗(yàn)實(shí)現(xiàn)的觸控系統(tǒng)采用了車(chē)規(guī)級(jí)芯片和在汽車(chē)領(lǐng)域廣泛應(yīng)用的LIN協(xié)議,數(shù)據(jù)傳輸穩(wěn)定可靠,有利于升級(jí)維護(hù),對(duì)于實(shí)際應(yīng)用也有一定價(jià)值。