《電子技術應用》
您所在的位置:首頁 > 電源技術 > 設計應用 > 基于手持終端的LCD驅動電路的實現
基于手持終端的LCD驅動電路的實現
蔡理金,王逢東,王
摘要: LCD驅動電路的設計是手持終端產品的重要組成部分。本文設計并實現了基于S3C2440A的手持終端LCD驅動電路。以應用于特殊行業的手持終端為例,敘述LCD驅動電路的設計實現方法。
Abstract:
Key words :

引言

  現在大部分的便攜式手持終端產品,如移動電話、導航系統等,都擁有一個小型LCD顯示屏,這使LCD驅動電路的設計成為手持終端設計的重要組成部分。

  LCD驅動電路的設計是手持終端產品的重要組成部分。本文設計并實現了基于S3C2440A的手持終端LCD驅動電路。以應用于特殊行業的手持終端為例,敘述LCD驅動電路的設計實現方法。

  硬件電路設計

  硬件電路結構
 

  本設計中手持終端CPU采用三星公司ARM920T內核處理器S3C2440A,其LCD控制器支持STN LCD和TFT LCD,實際使用的LCD為LTS350Q1-PE1_PI,屬于TFT LCD。

  電路框圖如圖1所示。

  

S3C2440A電路框圖

 

  驅動電路主要包括三部分:第一部分是LCD驅動,采用MAX1779芯片;第二部分是LED背光驅動,采用MP1521芯片;第三部分是VCOM信號驅動,采用LM8261芯片。這里主要敘述LCD驅動和背光電路的實現。

  LCD驅動電路

  由于LCD內集成有數字電路和模擬電路,需要外部提供數字電壓DVDD和模擬電壓AVDD。另外,為了完成數據掃描,需要TFT輪流開啟/關閉。當TFT開啟時,數據通過源極驅動器加載到顯示電極,顯示電極和公共電極間的電壓差再作用于液晶實現顯示,因此需要控制TFT的開啟電壓VGH、關閉電壓VGL,以及加到公共電極上的電壓VCOM。

  MAX1779芯片能產生LCD需要的模擬電壓AVDD、柵極開啟電壓VGH及柵極關斷電壓VGL。芯片內部集成有3個DC-DC轉換器,其中包括兩個充電泵和一個升壓轉換器,可以為小型TFT液晶屏提供高效的調節電壓。LCD驅動電路如圖2所示。

  

LCD驅動電路

 

  這里,一個充電泵產生正電壓,作為TFT的開啟電壓VGH;另外一個充電泵產生負電壓,作為TFT的關閉電壓VGL。此外,芯片還可以產生-5V電壓輸出,設計時利用-5V輸出電壓協助LM8261產生VCOM信號。

  LED背光驅動電路

  LCD作為一種被動顯示器件本身并不能發光,必須要有背光模塊提供光源。白光LED由于復雜程度較低、成本低且尺寸較小,被普遍用做嵌入式手持設備的LCD背光源。本文中背光驅動電路如圖3所示。

  

背光驅動電路

 

  驅動芯片采用MP1521,該芯片有3組獨立的電流反饋回路,可同時驅動3組并聯的LED?,F將3組反饋回路FB1、FB2、FB3短接,可以提供更大的驅動電流,用于驅動6個白色串聯LED背光燈。

  MP1521支持兩種方式控制LED亮度,一是將BRT連接在范圍為0.26V~1.2V的電壓上,另外一種是通過PWM信號控制LED亮度。設計時,將其連接在PWM端口,使用PWM控制LCD背光亮度。

  S3C2440A有5個16bit定時器,其中定時器0、1、2、3有PWM功能。將BRT連接到能夠輸出PWM信號的CPU的TOUT0/GPB0引腳,利用定時器0產生的PWM信號控制LCD亮度。通過改變PWM信號的占空比調整LED亮度,而通過設置CPU內部寄存器的值可以改變PWM的占空比。

  為了節省功耗,電路的使能(EN)端接CPU的LCD_PWREN管腳,高電平時背光電路工作;低電平時背光電路不工作。同時,可將EN端通過電阻直接連接到3.3V電源上以便調試時使用。

  LCD_BCK+和LCD_BCK-分別連接到串聯LED的正負兩端。軟件設計

 

  手持終端的嵌入式Linux所采用的內核版本是kernel-2.4.18。 為了使LCD能正常顯示,還需要在Linux系統下開發LCD的驅動程序。

  字符設備的驅動程序

  字符設備是Linux系統中最簡單的設備,可以像文件一樣訪問。當字符設備初始化的時候,其驅動程序向Linux內核登記,在chrdevs向量表中增加一個device_struct數據結構條目。這個設備的主設備標識符用作這個向量表的索引。一個設備的主設備標識符是固定的。chrdevs向量表中的device_struct數據結構包括一個登記設備驅動程序名稱的指針和一個指向一組文件操作的指針。這組文件操作本身位于這個設備的字符設備驅動程序中,并處理一些特定任務。

  Linux下的幀緩沖設備

  Linux操作系統為LCD等顯示設備提供了幀緩沖區。幀緩沖區(Framebuffer)是Linux為顯示設備提供的一個接口,是把顯存抽象化后的一種設備。為LCD編寫驅動程序的實質就是為幀緩沖區編寫驅動程序。

  由于幀緩沖驅動程序的實現在許多論文中有詳細敘述,這里不再贅述,本文重點討論背光設備驅動程序的實現。

  LCD背光設備的驅動程序

  LCD背光設備可看作字符設備,可以按照字符設備驅動程序的編寫方法進行實現。在驅動程序里實現了LCD各種控制功能。驅動程序主要包括lcdctrl.c和lcdctrl_smdk2440.c。其中lcdctrl.c屏蔽了具體的硬件,它通過鉤子函數調用lcdctrl_smdk2440.c相關函數完成各種具體操作。為了形象地說明兩個文件之間的關系,這里以LCD亮度調節過程為例,說明函數的調用過程,如圖4所示。

  

 

  lcdctrl.c中的lcdctrl_ioctl函數需根據上層應用程序的不同參數實現不同的功能,這些控制LCD的功能包括亮度調整、對比度調整、關閉LCD、開啟LCD等。

  下面分別敘述兩個文件的實現。

  lcdctrl.c文件

  1、定義file_operation結構體

  static struct file_operations lcdctrl_fops = {

  ioctl: lcdctrl_ioctl,

  open: lcdctrl_open,

  release: lcdctrl_close };

  LCD的各種控制功能在lcdctrl_ioctl函數中實現,lcdctrl_open和lcdctrl_close不實現具體功能,直接返回0值。

  2、lcdctrl_ioctl函數

  lcdctrl_ioctl函數需根據上層應用程序的不同參數實現不同的功能,這里主要說明亮度調節功能的實現。部分代碼如下:

  static int lcdctrl_ioctl(struct inode * inode, struct file *filp, unsigned int cmd , unsigned long arg)

  {……

  switch(cmd)

  { ……

  case

  _LCDCTRL_IOCTL_BRIGHTNESS:

  if ((arg >=0) && (arg <= 100))

  ret = lcdctrl_set_brightness(arg);

  break; //調節LCD背光亮度

  ……

  break;}

  return ret;}

  當應用程序傳遞的命令參數為LCDCTRL_IOCTL_BRIGHTNESS時,lcdctrl_ioctl調用lcdctrl_set_ brightness具體實現亮度調節功能。

  3、lcdctrl_set_brightness函數

  lcdctrl_set_brightness具體實現亮度調節功能。主要代碼如下:

  int lcdctrl_set_brightness(int b)

  {

  brightness = b;

  return lcd_device->set_brightness(b);

  }

  可以看出,此函數調用lcd_ device->set_brightness函數,而lcd_device在初始化時已被指向與具體的硬件相關的函數。

   4、初始化函數

 

  初始化函數主要完成初始信息的設置和設備的注冊。

  lcdctrl.c_smdk2440文件

  1、lcdctrl_device結構體

  lcdctrl_device結構體定義了具體操作LCD的各函數指針,包括LCD初始化函數,LCD開啟和關閉函數,亮度、對比度等設置函數。其中LCD關閉函數的本質就是將LCD背光亮度設置為0。

  static struct lcdctrl_device smdk2440_dev = {

  init: smdk2440_lcdctrl_init,

  enable: smdk2440_lcdctrl_enable,

  disable: smdk2440_lcdctrl_disable,

  set_intensity: smdk2440_lcdctrl_set_intensity,

  set_brightness: smdk2440_lcdctrl_set_brightness,

  set_contrast: smdk2440_lcdctrl_set_contrast};

  2、smdk2440_lcdctrl_set_brightnes函數

  這里只敘述亮度設置函數的實現。

  static int smdk2440_lcdctrl_set_brightness( int b)

  { ……

  TCNTB0 = 100;

  TCMPB0 = b*100/100;

  //設置TCMPB0寄存器的值

  TCON = (TCON & ~(0xf)) | ( TCON_0_AUTO | TCON_0_MAN | COUNT_0_OFF);

  TCON = (TCON & ~(0xf)) | 0;

  TCON=(TCON & ~(0xf)) | (TCON_0_AUTO | COUNT_0_ON);}

  函數中的語句大部分是給與定時器相關的寄存器寫值。其中b就是上層函數傳遞下來的bright值,從程序中可以看到,調節亮度本質上是通過TCMPB0寄存器寫入與bright相關的值,控制PWM占空比實現亮度調節功能。

  3、lcdctrl_device_get_ops函數

  用于上層獲取具體設備的鉤子函數。代碼如下:

  struct lcdctrl_device *lcdctrl_device_get_ops(void)

  {return &smdk2440_dev;}

  此函數被lcdctrl.c初始化時調用,將設備指向smdk2440_dev。

  至此,驅動程序設計完成,為了更好地實現LCD的管理,需要在上層的Qtopia應用程序中提供人機操作的界面。

  Qtopia應用程序

  Qtopia應用程序提供人機操作界面并調用底層驅動程序完成LCD控制功能,這里,仍然以亮度調節為例敘述應用程序工作過程。

  主要完成功能:

  1、應用程序完成人機操作的界面,為使用人員提供友好界面;

  2、讀取亮度值,并將其存入變量bright中;

  3、打開設備文件:fd=open("/dev/devname",O_RDONLY);

  4、調用底層的驅動程序,通過底層的驅動程序將LCD背光亮度調整為指定值。

  ioctl(fd, _BACKLIGHT_ IOCTL_BRIGHT, bright)。

  ioctl函數調用驅動程序完成亮度的調節。

  結語

  經測試,設計完成的LCD能很好地完成圖形的顯示,終端電源管理界面中包含了LCD亮度調節功能。通過圖形管理界面能夠方便地管理LCD,達到節約能量、延長手持終端工作時間的目的。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美风情在线观看| 在线观看av不卡| 欧美激情视频在线播放| 国产精品久久久久三级| 久久婷婷麻豆| 亚洲电影网站| 国语自产精品视频在线看| 欧美主播一区二区三区| 一区二区三区欧美视频| 狠狠色丁香婷婷综合| 免费亚洲视频| 亚洲电影在线观看| 欧美成人一区二区| 久久精品水蜜桃av综合天堂| 亚洲午夜在线视频| 亚洲国产成人不卡| 久久综合九色99| 亚洲国产精品一区二区第四页av| 136国产福利精品导航网址应用| 欧美日韩视频专区在线播放| 欧美亚洲专区| 欧美国产精品日韩| 欧美福利电影在线观看| 久久夜色精品国产欧美乱| 国产精品播放| 亚洲欧美激情精品一区二区| 欧美三级乱码| 欧美一级久久| 久久久一本精品99久久精品66| 最近中文字幕mv在线一区二区三区四区| 日韩午夜三级在线| 欧美本精品男人aⅴ天堂| 999在线观看精品免费不卡网站| 久久久精品国产免费观看同学| 亚洲乱码国产乱码精品精98午夜| 亚洲福利在线看| 国产综合色产在线精品| 亚洲黄一区二区三区| 亚洲午夜精品17c| 亚洲午夜久久久| 欧美一级欧美一级在线播放| 老司机一区二区| 在线日韩一区二区| 9人人澡人人爽人人精品| 国产欧美一区二区精品性色| 亚洲免费网站| 久久综合伊人77777蜜臀| 一区二区三区日韩在线观看| 黄色欧美成人| 欧美亚日韩国产aⅴ精品中极品| 欧美激情视频在线免费观看 欧美视频免费一| 日韩视频久久| 国模一区二区三区| 欧美与欧洲交xxxx免费观看| 亚洲无亚洲人成网站77777| 国内外成人在线| 亚洲麻豆视频| 久久在线免费观看| 久久婷婷国产综合精品青草| 国产日韩久久| 欧美图区在线视频| 国产一区二区三区日韩欧美| 91久久国产综合久久| 午夜精品国产| 午夜欧美大片免费观看| 欧美电影在线播放| 欧美视频官网| 久久综合国产精品台湾中文娱乐网| 欧美一区二区精美| 国产精品青草久久| 欧美一级日韩一级| 一区二区三区精品视频在线观看| 国产精品久久网| 国产一区二区剧情av在线| 久久一区国产| 国产精品一区=区| 欧美激情bt| 日韩亚洲视频在线| 欧美日韩国产一中文字不卡| 国产亚洲永久域名| 欧美大学生性色视频| 香蕉尹人综合在线观看| 国产精品视频一| 国产精品网站在线| 黄色成人精品网站| 欧美ed2k| 亚洲大片av| 国产欧美日韩精品在线| 欧美日本国产精品| 日韩一级成人av| 欧美三区在线视频| 国产中文一区二区| 一本久道久久综合婷婷鲸鱼| 亚洲精选在线观看| 国产精品视频99| 亚洲第一二三四五区| 欧美日韩国产在线播放| 国产精品系列在线播放| 嫩草伊人久久精品少妇av杨幂| 国产精品一区二区在线观看网站| 欧美日韩一区二区国产| 影音先锋亚洲电影| 欧美一区二区三区男人的天堂| 国产精品一区二区久久久久| 国产精品一二三四区| 亚洲乱码日产精品bd| 国产欧美日韩精品一区| 欧美一级理论片| 久久久久一区二区三区| 性8sex亚洲区入口| 亚洲第一成人在线| 亚洲国产精品成人综合色在线婷婷| 欧美成人在线免费视频| 欧美一区二区性| 性色一区二区| 久久伊人精品天天| 国产免费一区二区三区香蕉精| 欧美激情第三页| 日韩性生活视频| 欧美亚洲第一页| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲电影在线播放| 韩国精品一区二区三区| 一区免费在线| 欧美色播在线播放| 亚洲国产婷婷香蕉久久久久久99| 国产亚洲欧美另类一区二区三区| 欧美一区二区三区在线观看| 欧美成人精品福利| 欧美视频专区一二在线观看| 欧美a级片网| 伊人精品在线| 欧美一区二区私人影院日本| a91a精品视频在线观看| 精品va天堂亚洲国产| 亚洲制服欧美中文字幕中文字幕| 欧美日韩成人一区二区| 国产精品稀缺呦系列在线| 美脚丝袜一区二区三区在线观看| 在线日韩一区二区| 久久女同互慰一区二区三区| 免费观看欧美在线视频的网站| 国产精品一卡| 久久亚洲国产成人| 亚洲少妇诱惑| 国产精品视频999| 日韩网站在线看片你懂的| 狠狠做深爱婷婷久久综合一区| 小黄鸭精品aⅴ导航网站入口| 国产亚洲精品久久久久婷婷瑜伽| 国产精品mm| 久久动漫亚洲| 欧美黑人在线播放| 国产精品大片wwwwww| 红桃视频欧美| 国产一区二区三区四区三区四| 亚洲影院污污.| 亚洲国产精品一区二区尤物区| 欧美国产精品一区| 亚洲欧美日本国产专区一区| 欧美日韩国产欧| 亚洲一区三区电影在线观看| 国产一区白浆| 亚洲字幕在线观看| 蜜桃av一区二区在线观看| 日韩亚洲欧美综合| 夜夜嗨av色综合久久久综合网| 欧美国产日韩一区二区在线观看| 欧美成人高清视频| 国产精品乱码人人做人人爱| 国自产拍偷拍福利精品免费一| 国产精品高潮久久| 欧美日韩亚洲一区二区三区在线观看| 欧美性大战久久久久久久| 亚洲大片av| 亚洲精品乱码久久久久久日本蜜臀| 亚洲欧洲日产国产网站| 欧美日韩成人在线| 欧美国产视频一区二区| 又紧又大又爽精品一区二区| 亚洲免费一级电影| 久久综合狠狠综合久久综合88| 精品不卡视频| 国产专区精品视频| 欧美成人a视频| 欧美国产日韩一区二区在线观看| 亚洲影院色无极综合| 在线观看欧美成人| 韩国女主播一区二区三区| 国产精品日韩二区| 国产欧美精品在线| 欧美午夜精品久久久久久浪潮| 亚洲视频电影在线| 欧美性猛交xxxx免费看久久久| 看欧美日韩国产| 欧美亚洲视频在线看网址| 欧美日韩一区二区免费在线观看| 国产精品美女999| 亚洲一区二区三区色| 欧美刺激午夜性久久久久久久| 91久久香蕉国产日韩欧美9色| 国产精品资源在线观看| 欧美14一18处毛片| 一区二区日韩精品| 中文无字幕一区二区三区| 夜夜嗨av一区二区三区四季av| 欧美日韩亚洲精品内裤| 亚洲精品视频免费观看| 亚洲日本欧美日韩高观看| 狠久久av成人天堂| 久久综合成人精品亚洲另类欧美| 国产精品最新自拍| 亚洲欧美日韩精品久久久久| 久久性天堂网| 亚洲最新在线| 亚洲一区二区三区在线视频| 91久久国产综合久久91精品网站| 国产精品久久久亚洲一区| 国产亚洲视频在线| 性高湖久久久久久久久| 99re6这里只有精品视频在线观看| 亚洲国产专区校园欧美| 亚洲欧美日韩国产成人精品影院| 国产精品自拍在线| 日韩视频在线永久播放| 亚洲国产精品久久人人爱蜜臀| 欧美日韩国产成人高清视频| 亚洲一区二区三区在线视频| 国产精品日韩精品欧美在线| 麻豆乱码国产一区二区三区| 国产亚洲人成网站在线观看| 亚洲视频一二三| 国内久久视频| 国产夜色精品一区二区av| 国产在线精品一区二区夜色| 欧美一区二区观看视频| 久久精品91久久久久久再现| 欧美高清视频在线观看| 欧美激情一区二区在线| 欧美在线精品免播放器视频| 午夜精品在线视频| 欧美伊人精品成人久久综合97| 亚洲精品麻豆| 国产精品日韩在线一区| 一区二区三区精品视频| 国产一区二区日韩精品欧美精品| 欧美1区2区视频| 久久综合九色九九| 麻豆精品在线播放| 亚洲黑丝一区二区| 一本色道综合亚洲| 亚洲天堂黄色| 欧美亚洲日本国产| 亚洲韩国精品一区| 亚洲区中文字幕| 亚洲欧美国产另类| 久久国产婷婷国产香蕉| 99在线热播精品免费99热| 午夜精品免费| 免费的成人av| 国产精品久久久久久久久久久久久久| 极品少妇一区二区三区精品视频| 欧美一区2区三区4区公司二百| 一区二区国产在线观看| 欧美日韩国产成人在线免费| 欧美日韩国产影片| 国产一区二区三区免费在线观看| 亚洲高清不卡一区| 欧美va天堂va视频va在线| 91久久夜色精品国产九色| 国内精品国语自产拍在线观看| 欧美国产精品一区| 国产精品一区二区三区观看| 美女脱光内衣内裤视频久久网站| 亚洲尤物影院| 欧美国产精品专区| 国产欧美精品xxxx另类| 国产精品视频免费一区| 欧美成黄导航| 国产精品私拍pans大尺度在线| 最新热久久免费视频| 尹人成人综合网| 欧美高清不卡在线| 欧美一级大片在线免费观看| 激情成人中文字幕| 国产精品视频九色porn| 亚洲级视频在线观看免费1级| 欧美手机在线| 亚洲高清电影| 国产精品国产三级国产普通话99| 亚洲综合国产激情另类一区| 午夜亚洲性色视频| 国产一区二区三区电影在线观看| 日韩午夜三级在线| 精品成人久久| 国产欧美一区二区三区久久| 亚洲欧洲精品天堂一级| 国产精品v欧美精品v日韩| 国产精品无码永久免费888| 久久久久久久综合日本| 狠狠色狠狠色综合系列| 一区二区高清视频在线观看| 免费高清在线一区| 亚洲高清免费视频| 久久aⅴ国产欧美74aaa| 久久这里只精品最新地址| 久久精品人人做人人爽电影蜜月| 亚洲国产三级在线| 欧美福利视频在线观看| 小黄鸭精品密入口导航| 久久婷婷综合激情| 久久久久久久999| 老司机午夜精品视频在线观看| av成人免费在线| 欧美色欧美亚洲另类七区| 亚洲精品免费在线观看| 99精品福利视频| 蜜桃av一区二区在线观看| 欧美精品午夜视频| 欧美一区二区在线视频| 在线观看免费视频综合| 日韩亚洲不卡在线| 国产视频亚洲精品| 韩国免费一区| 欧美午夜视频在线观看| 欧美成人精品高清在线播放| 国产伦精品一区二区三区视频孕妇| 一本色道久久综合亚洲精品婷婷|