萬國春, 司玉棟, 童美松
(同濟大學電子與信息工程學院,上海 201804)
通過紅綠藍三基色混合實現調色調光,RGB-LED越來越被廣泛地用于汽車電子行業,例如氛圍燈場景,用以滿足內飾要求[1]。傳統的RGB-LED 控制方式包括車內按鈕按鍵、中控臺等方式,存在成本較高、使用不便、缺乏體驗感等短處。觸摸串口屏具備響應速度高、性能穩定和易于維護的特點[2],結合組態設計可以精簡功能開發,提供良好的人機操作界面,使交互性大大提升。
本文結合組態設計思想和嵌入式開發,利用串口通信和LIN原理完成觸控指令到RGB-LED 的控制數據定義,基于PWM 實現調色效果。系統面向汽車電子領域,開發的觸控系統不僅有助于培養學生技能而且具有一定的實用價值。
本系統包括串口屏、微控制器模塊和RGB-LED模塊。系統總體方案是首先對串口屏完成組態設計,提供人機操作界面(HMI),微控制器模塊接收來自串口屏的觸控指令后進行指令解析,經LIN 協議端口轉發至PWM恒流驅動模塊,輸出占空比不同的三基色通道驅動信號,實現RGB-LED的調光調色。
其中串口屏組態設計面向顯示區和觸摸區,觸摸區實現16 種常用顏色觸摸點亮、占空比和亮度輸入點亮;顯示區則實現對應占空比數據顯示。組態設計基于變量存儲器的規劃,完成后觸控操作和串口指令實現綁定;微控制器模塊包括中斷模塊和串口/LIN接口模塊,中斷模塊接收串口數據進入中斷解析服務,經LIN協議端口轉發;RGB-LED 模塊包括PWM 恒流驅動模塊和燈頭。基于組態設計的車用RGB-LED 觸控實驗系統結構框圖如圖1 所示。

圖1 實驗系統結構框圖
串口屏組態設計的主要內容是人機交互界面的制作和控件配置,最終實現觸控和參數指示功能。
選擇DMT10600T102_07WT 電容式觸摸串口屏,即DGUS屏。軟硬件開發體系如圖2 所示,串口屏采用直接變量驅動顯示方式,所有的顯示和操作基于預先設置好的變量配置文件[3],支持文本、圖標、圖形的TFT驅動顯示。人機交互界面使用組態軟件進行變量規劃和具體的控件定義,生成13.bin、14.bin、22.bin文件和config.txt文件,通過SD卡下載工程。

圖2 系統軟硬件開發體系框圖
串口屏包含FLASH、寄存器、變量存儲器和曲線緩沖區4 類存儲空間。其中變量存儲器大小為56 KB,地址為0x0000 ~0x6FFF,為用戶自定義變量開發所使用,服務顯示變量和格式控制需求。
由于串口屏的工作模式和界面狀態完全由數據變量控制,因此串口指令只需要對變量進行讀、寫即可,指令集一共有5 條指令,即0x80、0x81、0x82、0x83、0x84指令,分別對應對寄存器寫、寄存器讀、變量存儲器寫、變量存儲器讀和曲線緩沖區寫操作,基本實現了用戶“零代碼”完成觸摸屏人機交互[4]。串口指令結構如圖3 所示。

圖3 串口指令結構
系統實現16 種常用顏色觸摸點亮、占空比和亮度輸入點亮和參數顯示功能。根據功能需求,定義幀頭為5AA5,利用0x82、0x83 串口指令,即通過對變量存儲器特定地址的數據進行讀寫操作,并配合組態軟件實現開發。
具體地,首先制作人機交互頁面,頁面包括觸摸區的常用顏色、占空比輸入框、亮度輸入框和對應參數顯示框。其中,常用顏色利用“同步數據返回”控件進行設置,定義為觸摸色塊則通過串口發送變量存儲器規劃地址內存儲的數據,這里規劃地址為0x000 ~00x000F,對應地址存儲數據為字符00 ~FF。占空比和亮度輸入控制和顯示則利用“變量數據錄入”和“數據變量顯示”控件聯合設置,定義為輸入有效數據后顯示并發送“5A A5 06 83 00 XX 01 00 YY”的串口指令,指令中XX是30、31、32、33 之一,對應字符0、1、2、3,用來區分三基色和亮度,YY 即輸入的具體數據。另外地址和功能標號可以在系統初始化時顯示。
HMI組態設計界面如圖4 所示,串口屏組態設計完成后變量地址和數據分配如表1 所示。

表1 變量地址和數據分配

圖4 HMI組態設計界面
模塊選擇Kinetis EA MCU,其內部架構如圖5 所示,集成了低功耗Cortex-M0 +內核和嵌入式閃存,系統外設包括電源管理模塊、內外振蕩器、低壓檢測、WDG、單周期GPIO 和位操作引擎[5],并且具有支持LIN協議的UART 接口,脈沖寬度計時器和按鍵中斷模塊。

圖5 Kinetis EA MCU內部架構
LIN是一種基于UART/SCI的低成本開放式串行通訊總線,是對包括CAN總線在內的多種汽車網絡的補充[6]。報文包括報頭與響應兩部分,主機負責發送報頭,從機接收報頭并對所含信息進行解析,然后決定是否發送應答。一個完整的LIN 信息幀包括間隔場、同步場、標識符場、數據場以及校驗和場[7],幀的結構如圖6 所示。其中標識符場包括6 位幀ID 和2 位奇偶校驗位,幀ID標識了幀的類別和目的地,從機據此作出接收/發送/忽略應答動作。根據幀ID 的不同可以將幀分為信號攜帶幀、診斷幀和保留幀[8]。

圖6 LIN幀的結構
本實驗系統利用Kinetis EA64 串行接口1,即UART1 接收串口屏數據,UART1_BUF 串口緩沖區暫存數據,MCU主芯片解析收到的觸控指令后通過RxD_LIN和TxD_LIN引腳經附設的LIN 通信收發器轉發至RGB-LED模塊。
微控制器附設LIN通信收發器電路圖設計如圖7所示,其核心MC33662LEF 是一款專門用于汽車LIN子總線應用的物理層組件[9]。同時,通過LIN 描述文件(LDF)自定義使用幀ID =15,PID =55 的信號攜帶幀點亮RGB-LED。點燈時,恒流驅動模塊通過PWM方波調節占空比來控制LED快速地閃爍點亮,由于人眼具有視覺惰性,當PWM 的頻率足夠高,人眼無法察覺閃爍[10-12]。

圖7 微控制器附設LIN通信接口電路圖
PWM恒流驅動模塊選擇MLX81108 芯片,LRTB GVSG燈頭。芯片內部集成了LIN 收發器和控制器、穩壓器、16 位微控制器,支持16 位電流調制以及LED色彩與老化補償,具備LIN自動配置功能。
模塊核心電路原理圖如圖8 所示,該模塊接收微控制器模塊發出的LIN信號之后,連接RGB-LED燈頭的芯片HV0、HV1、HV2 引腳將輸出三基色通道驅動電流完成點燈。三基色通道驅動電流大小通過PWM調制設定。

圖8 RGB-LED模塊核心電路圖
軟件設計包括微控制器模塊和RGB-LED 模塊的軟件設計,目的是微控制器模塊可以實現串口屏數據的接收、解析和轉發,RGB-LED模塊可以實現PWM驅動點燈。微控制器模塊的軟件設計流程如圖9 所示。首先進行CLK、UART、LIN 初始化,完成系統時鐘、串口、LIN 通信的基本設置,然后對LIN 進度表設置,確定事件觸發幀和診斷幀兩種消息格式和相應的幀ID,之后開啟UART1 中斷,完成地址初始化顯示,進入中斷等待階段。

圖9 微控制器模塊軟件流程圖
根據串口屏組態設計的結果,觸控指令與預定格式的串口指令相對應。當串口屏觸摸區被觸摸即發出組態設計時的串口指令,微控制器接收數據存入UART1_BUF數組,然后進行解析轉發。具體過程:數組將存入以下兩類5 種指令數據:00 ~FF和5A A5 06 83 00 XX 01 00 YY,其中第6 位XX 為30、31、32、33之一,也就是字符“0”“1”“2”“3”之一,而第9 位YY為具體數值。然后判斷數組第1 位和XX,當第1 位判得00 ~FF時執行16 種常用顏色點亮;判斷XX為“3”時進行亮度調整,YY 就是亮度值,如果是“0”“1”“2”,YY就是RGB具體值,實現三基色調光。
微控制器模塊軟件設計完成后,即可從串口屏觸控數據中提取出三基色和亮度值4 個量,最后通過LIN口發給RGB-LED 模塊,通過PWM 驅動。RGBLED模塊的軟件設計較為簡單,其流程圖如10 所示。

圖10 RGB-LED模塊軟件流程圖
系統各模塊完成電性連接并上電后,串口屏HMI正常顯示,可以進行觸控操作,系統預期功能實現,整體實物圖如11 所示。開始進行系統功能測試,首先16 種常用顏色點亮測試,其中綠色點亮效果如圖12所示。

圖11 系統整體實物圖

圖12 綠色點燈
三基色和亮度輸入點燈測試中,顏色和亮度設置框內分別輸入255、0、0、52,即希望點亮紅燈,亮度為52。此時,串口成功收到觸摸屏四條指令,如圖13 中紅綠藍黃矩形框中的指令分別為三基色和亮度控制指令,每條指令最后一位即為輸入數值的16 進制表示,即FF、00、00、34,實測結果為成功點亮,如圖14 所示。

圖13 三基色和亮度輸入時發送的指令

圖14 三基色和亮度輸入點燈
本實驗基于組態設計和Kinetis EA 微控制器模塊構建了面向車用RGB-LED 的觸控系統。實驗涉及串口屏組態設計、嵌入式開發、PWM 的三基色調色等知識,同時對于學生熟悉UART通信協議、LIN通信協議的基本運用有更加深刻的理解。另外本實驗實現的觸控系統采用了車規級芯片和在汽車領域廣泛應用的LIN協議,數據傳輸穩定可靠,有利于升級維護,對于實際應用也有一定價值。