楊光義, 郭宗昊, 徐 博, 程翰琳
(武漢大學 電子信息學院, 湖北 武漢 430072)
電子墨水屏(或稱水墨屏,E-Ink)是一種由大量細小微膠囊組成的電泳顯示器(electrophoretic display,EPD),分為有源矩陣(active matrix,AM)和無源矩陣(positive matrix,PM)兩種形式[1-2]。每個微膠囊中包含懸浮于澄清液體中的帶負電黑色粒子和帶正電白色粒子。在通電電場的驅動下,帶電粒子呈現出不同的內容。在環境光線較強的情況下,電子墨水屏克服傳統液晶屏容易反光的先天不足。另外,電子墨水屏能夠提供類似紙張上閱讀的體驗,有效彌補了傳統液晶屏容易引起視覺疲勞的缺陷,使其大量用于電子書閱讀器等便攜式電子設備[3]。同時,傳統液晶屏需要不斷刷新圖像,所以能耗較大,而電子墨水屏可以讓圖像有效地保持在屏幕上,只有在刷新時才消耗電能,從而極大降低系統功耗[4]。在國家大力提倡節能環保、低碳高效的背景下,電子墨水屏的優勢更加突出。因此,設計開發一套多點觸控電子墨水屏顯示系統,對于社會生產和群眾生活具有很強的現實指導意義[5]。
多點觸控電子墨水屏顯示系統主要由控制模塊、顯示模塊、觸控模塊和電源模塊構成。控制模塊以單片機STM32F407ZET6為核心,實現文本文檔(text document,TXT)的讀取、電源模塊的使能控制和觸控/顯示模塊的通信。顯示模塊由電子墨水屏GDE043A2及其接口構成,用于圖片和TXT文檔的顯示。觸控模塊由觸摸屏及其接口構成,完成對觸摸點坐標和觸摸手勢的采集,實現顯示模塊的人機交互。電源模塊由+3.3 V供電電路和電子墨水屏供電電路構成。其中,+3.3 V供電電路采用降壓型開關穩壓芯片TLV62565,為控制和觸控模塊供電。系統組成框圖見圖1。

圖1 多點觸控電子墨水屏顯示系統框圖
結合圖1,硬件電路設計依次按照單片機STM32F407ZET6控制模塊、電子墨水屏顯示模塊、觸控模塊和電源模塊展開。限于論文篇幅,本文在介紹其他模塊的同時簡要說明電源模塊[6],不再單獨陳述電源模塊。
STM32F407ZET6是意法半導體(ST Microelectronics)公司生產的一種性能良好的單片機,采用ARM Cortex-M4嵌入式內核,上限時鐘頻率168 MHz,主要面向低功耗、低成本、高性能應用場合。STM32F407ZET6擁有114個GPIO(general purpose input output)端口,集成多個高級/通用定時器,將SPI(serial peripheral interface)和I2C(inter-integrated circuit)掛載到內部總線上,有助于完成復雜的算法功能。STM32F407ZET6可利用JTAG(joint test action group)接口進行代碼燒寫和在線調試,系統拓展和二次開發十分方便。控制模塊具體電路如圖2所示。

圖2 控制模塊電路
圖2中,單片機STM32F407ZET6通過GPIO端口PC0—PC7與顯示模塊連接,實現控制和顯示模塊間并行通信;通過GPIO端口PB6/PB7與觸控模塊的時鐘/數據接口連接,實現控制和觸控模塊間的I2C通信;通過GPIO端口PC10/PC11/PC12/PC13與Micro-SD卡連接[7],完成SPI通信;通過GPIO端口PB8/PB9/PG14與電源模塊連接,完成電源模塊的使能控制。
電子墨水屏采用大連佳顯公司生產的152 mm×102 mm有源矩陣電泳顯示器GDE043A2,分辨率800×600,采用34引腳、0.5 mm間距的FPC(flexible printed circuit)接口。電子墨水屏供電電路采用美國凌特(Linear Technology)公司生產的升壓型開關穩壓芯片LT1615,輸入電壓低至+1 V,升壓高達+34 V,靜態電流低至20 μA,通過內部控制電路將FB引腳電壓鉗位在+1.23 V,經精密電阻分壓后實現升壓。電子墨水屏模塊電路見圖3。

圖3 電子墨水屏模塊電路
圖3中,D4和D5為瞬態抑制二極管MBR0530,當 MBR0530 兩端受到反向瞬態沖擊時,能以皮秒量級的速度,將其兩極間的高阻抗變為低阻抗,吸收高達1 500 W的浪涌功率,有效保護系統[8]。U2將+5 V轉換為+15 V/-15 V/+22 V/-20 V電壓,驅動顯示模塊工作。U2和Q1同時受STM32F407ZET6使能端控制,僅當GDE043A2需要數據傳輸和控制時,電源電路才輸出高壓,從而降低靜態功耗。GDE043A2內置驅動芯片HX8705-B,對應的引腳定義見表1。

表1 HX8705-B引腳接口定義
觸控模塊采用深圳敦泰公司生產的觸控芯片FT5206,工作電壓為+2.8 V~+3.6 V,采用I2C通信方式,可通過中斷和查詢兩種方式讀取觸摸點信息。最多支持5點同時觸摸,可實時獲取不同觸摸點的狀態和位置信息,具有非常好的操控效果[9]。能摸屏模塊電路見圖4。

圖4 觸摸屏模塊電路
圖4中,D7為肖特基二極管SS24,當后級輸出電壓大于+5 V時,它可以防止電流倒灌而造成的系統短路,實現系統保護的目的。U3為降壓性開關穩壓芯片TLV62565,效率高達95%,通過內部控制電路將FB引腳電壓鉗位在+0.6 V,通過精密電阻分壓實現降壓。
系統軟件主要完成觸摸點坐標讀取、處理、電子墨水屏顯示以及Micro-SD卡讀取功能。Micro-SD卡采用掛載文件系統方式進行文檔讀取[10]。由于Micro-SD卡已有非常成熟的讀寫流程,有興趣的讀者請參閱文獻[11]。
主程序流程見圖5。首先啟動電子墨水屏電源供電,初始化電子墨水屏模塊;顯示開機界面后,關閉電源模塊使能端,斷開顯示模塊供電,同時通過單片機STM32F407ZET6讀取Micro-SD卡文檔;當用戶在觸摸屏上點擊相應控件時,單片機STM32F407ZET6通過觸控模塊識別觸點位置,選擇相應圖片或文檔;最后單片機STM32F407ZET6使能供電并通過相應時序,控制顯示模塊,將圖片或文檔中的ASCII字符顯示在電子墨水屏上,同時,系統不斷識別觸點位置或手勢,實現對顯示內容的操作。

圖5 主程序流程
由于電子墨水屏的物理特性和數據協議與傳統液晶屏的差異,GDE043A2無法對指定的像素點進行修改或者填充[12]。另外,由于電子墨水屏需要對原圖像進行擦除(圖像全白)后,才能顯示新圖像,否則會產生原圖像的殘影,導致顯示效果不佳。所以,實際使用中只能對屏幕圖像整體刷新,這成為制約墨水屏刷新速率的一大瓶頸。另外,由于GDE043A2不帶字庫,顯示ASCII碼字符必須要建立字庫數組。
GDE043A2最大時鐘頻率為200 kHz,最低時鐘循環周期為40 ns。為提高刷新速率,實現電子墨水屏實時動態顯示,系統從硬件選型和算法優化兩個方面入手。硬件選型方面,相對于主流單片機20 MHz左右的時鐘頻率,系統采用的STM32F407ZET6時鐘頻率高達168 MHz,運行效率大大提升[13]。算法優化方面,系統通過生成一個短周期的RAM波形表[14]進行顯示,最大程度提高電子墨水屏的掃描速度,這樣既能保證刷新速率,又能使顯示時不產生殘影。同時,控制和顯示模塊間通過并行接口傳輸數據,使得圖像顯示速度得到極大提高。
GDE043A2顯示色彩為4階灰度,即每個像素點由2個比特位控制,一個字節控制4個像素點,其掃描方式為從上到下、從左到右。系統通過設計16×16的ASCII字符圖片和4階灰度字模轉換工具[15],建立對應從32(space)到126(‘~’)的ASCII碼字庫。同時,通過對應的ASCII碼值查找相應字庫數據起點,按字符串順序生成圖像數據,送入GDE043A2顯示。
單片機STM32F407ZET6與FT5206通過I2C通信,獲取觸摸點的位置和狀態,并采用查詢方式進行觸摸檢測。當需要檢測觸摸時,程序進入觸控子程序,查詢觸摸狀態寄存器(0X02),判斷是否存在有效觸點。如果存在有效觸點,則讀取不同觸摸點坐標數據寄存器(0X03/0X09/0X0F/0X15/0X1B),得到觸摸點個數和對應觸摸點的坐標值。觸摸點個數與手勢之間的對應關系見表2。

表2 觸摸點個數及其手勢和功能
不同手勢對應不同的采樣點個數,也決定了不同的識別算法。當用戶單點接觸觸控屏時,觸控屏捕捉觸摸點坐標,實現單擊和上/下/左/右滑動操作。當用戶多點接觸觸控屏時,系統通過相應的手勢識別算法,實現放大、縮小或關閉操作[16]。讀取觸摸點坐標流程見圖6。

圖6 讀取觸摸點坐標流程
為驗證顯示功能,系統預先在Micro-SD卡內建立一個“Test.txt”的文本文檔,保存一段歌曲的歌詞,同時在單片機STM32F407ZET6的RAM中保存一張圖片數據。單片機STM32F407ZET6控制顯示模塊在文本文檔和圖片之間輪流顯示,觀察系統顯示文本和圖片的效果,同時記錄刷新速率。系統顯示效果示例如圖7所示。

圖7 系統顯示功能測試效果
實測表明,GDE043A2的文字和圖片顯示均取得了良好的效果。屏幕刷新時,系統最快可實現1.2幀/s的刷新速率,肉眼未觀察到明顯圖像殘影。
為驗證觸控功能,客觀評估觸摸手勢的識別效率和準確度,系統對各種手勢進行多次測試,記錄系統識別不同手勢的情況,測試結果見表3。為更加直觀,以左滑為例,將表3的觸摸測試結果以折線圖形式表示,如圖8所示。為達到最佳顯示效果,圖8對縱坐標進行了歸一化處理。

表3 觸摸測試結果
分析圖8可知,當采樣點數N1=5時,識別成功率P最高;當采樣點數N1增加時,識別時長也單調增大。綜合考慮識別成功率P和識別時長,系統采用采樣點數N1=5。

圖8 左滑測試結果折線圖
本文設計了一套基于STM32的電子墨水屏顯示系統。系統可以讀取外設文本文檔,實時顯示文字和圖片,還可以接受用戶單點或多點觸屏控制,完成單擊、上/下/左/右滑動、放大縮小或關閉功能。系統具有電路簡單、成本低、耗電少等優良性能,具有良好的應用前景。針對特定應用背景,開發WiFi通信或者USB通信,是本文下一步的工作重點。