您的位置 首页 汽车

根据STM32的高性能低功耗人机界面体系规划

本文选用了意法半导体公司基于ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过选择合适的液晶模块,构建了一个高性能低功耗的中文人机界面系统。1、系统的工作原理本系统

  本文选用了意法半导体公司依据ARM最新Cortex—M3内核的STM32F103RB作为主控芯片,通过挑选适宜的液晶模块,构建了一个高功能低功耗的中文人机界面体系。

  1、体系的作业原理

  本体系以STM32F103RBT6为中心,选用晶彩光电的AM240320TFT液晶屏作为显现器,完结内容的显现,因为STM32F103RBT6内部Flash为128K,假如用来贮存汉字字库,对芯片资源是一种极大的糟蹋,所以本文中选用微操控器外挂SPI接口Flash的规划思路,将不必重复改动的中文字库存放在外部Flash芯片里边,需求时再通过SPI口调入处理器。因为STM32F103RBT6不带有FSMC,所以选用软件模仿总线的办法,完结对液晶模块的驱动。

  2、体系硬件规划

  2.1、供电部分电路

  因为整个体系选用3.3V供电,所以有必要外部稳压电路将电压安稳到3.3V,本规划中选用三端稳压芯片LM1117-3.3,将外部电池电压安稳为3.3V位体系供给电源,为处理器、液晶显现器、SPIFlash供电,选用二极管IN4007串接在电源正极,为体系供给电源反接维护。供电部分原理图如图1所示。

    

  图1 体系供电部分原理图

  2.2、液晶显现部分电路规划

  液晶显现部分主要由微操控器驱动液晶显现模块完结人机界面状况的显现,通过发送指令字,完结液晶模块的初始化以及汉字的显现。

  2.2.1、STM32F系列ARM微操控器的特色

  STM32处理器选用ARM公司最新的V7体系架构的内核Cortex—M3,它的速度比ARM7快三分之一,功耗低四分之三,一起集成了分支猜测,单周期乘法,硬件除法等功能,大大地提高了处理器的数据处理才能,一起选用最新的Thumb-2指令集,有效地降低了代码的密度,提高了程序的履行功率,通过对功耗和功能的剖析,本文中选用的处理器为STM32F103RBT6,该处理器作业频率为72MHz,内置高速存储器(高达128K字节的闪存和20K字节的SRAM),丰厚的增强I/O端口和联接到2条APB总线的外设。供电电压2.0~3.6V,一系列的省电形式确保低功耗使用的要求,到达了功能和功耗的平衡。

  2.2.2、TFT液晶显现模块的特色

  TFT液晶显现屏是薄膜晶体管型液晶显现屏。TFT液晶为每个像素都设有一个半导体开关,每个像素都能够通过点脉冲直接操控,因而每个节点都相对独立,并能够接连操控。不只提高了显现屏的反应速度,一起能够准确操控显现色阶,所以TFT液晶的色彩更真。

  因为大多数带有LCD操控器的ARM处理器都没有内部的程序存储器和数据存储器,而一般的Cortex—M3内核微操控器都不带有专门的LCD操控器,关于不带有LCD操控器的体系,一般长常用Intel8080接口或许Motorola的6800接口,本体系中选用STM32高速的IO口模仿8080接口时序。综上所述,选用的TFT液晶有必要满意两个条件,榜首,带有独立的显存。第二,带有8080接口。规划中选用了台湾选用晶彩光电的AM240320TFT液晶屏,它的主操控芯片为ILI9320,自带总巨细为172820(24Ox320x18/8)的显存,模块的16位数据线与显寸的对应关系为565办法,它支撑包含8080接口在内多种操控输入信号。

  STM32选用外部8MHz的晶振作为输入时钟,内部锁相环将时钟倍频到72MHz作为体系时钟,选用GPIO口模仿8080时序并行驱动2.8寸TFT屏,显现部分的处理器和液晶显现器的硬件电路接口电路如图2所示。

    

  图2 体系液晶接口原理图

  2.3、SPI接口Flash存储叠的特色

  因为在本体系中整个的汉字字库需求存储在外部Flash中,所以需求挑选一种Flash存储芯片,Flash芯片挑选需求满意以下要求。榜首,尽量占用少的IO口,因为液晶显现器现已选用了并行接口,假如持续选用并行接口的Flash,对芯片的IO耗费较大,这样势必要选用IO更多的芯片,关于便携式设备来说,这是不合理的,所以本体系的规划进程中选用的Flash为SST公司的SST25VF080B,它选用SPI接口,SPI是一种高速的,全双工,同步的通讯总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,一起为PCB的布局上节约空间,供给便利,正是出于这种简略易用的特性,现在越来越多的芯片集成了这种通讯协议,本文中的SPIFlash选用美国SST公司的SST25VF080B芯片,容量为8M位,它作业电压规模为2.7~3.6V,作业在SPI形式0或许形式3,最高作业在50MHz,最小擦除单位为4K字节的扇区,可擦写10万次,数据坚持100年以上。而STM32F103RBT6带有高速的硬件SPI接口,能够很便利与SST25VF080B衔接通讯。所以咱们选用SPIFlash来完结对汉字字库的存储,字库存储部分的硬件电路接口图如图3所示。

    

  图3 SPIFlash接口部分原理图

  3、体系软件规划

  体系软件包含字库的调用和TFT液晶显现软件规划两个部分,字库调用主要是通过STM32F103RBT6的SPI接口调用存储在SST25VF080B中的中文字库。TFT液晶显现部分主要是通过STM32F103RBT6通用I/O口模仿16位的8080并口,完结对液晶显现器的驱动,在软件规划的进程中需求留意一个问题。便是不同字库编码的规范时不一样的,所以在解码时略有不同,常用的汉字字库有GB2312字库和GBK字库两种。

  3.1、GB2312字库和GBK字库

  GB2312录入简化汉字及符号、字母、日文化名等共7445个图形字符,其间汉字占6763个。GB2312规则“对恣意一个图形字符都选用两个字节表明,每个字节均选用七位编码表明”,习惯上称榜首个字节为“高字节”,第二个字节为“低字节”。GB2312—80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是简直一切的中文体系和国际化的软件都支撑的中文字符集,这也是最基本的中文字符集。其编码规模是高位0xa1~0xfe,低位也是0xa1~0xfe;汉字从0xb0a1开端,完毕于0xf7fe。GB2312将代码表分为94个区,对应榜首字节(0xa1~0xfe);每个区94个位(0xa1~0xfe),对应第二字节,两个字节的值别离为区号值和位号值加32(20H),因而也称为区位码。01~09区为符号、数字区,16~87区为汉字区(0xb0~0xf7),10~15区、88~94区是有待进一步规范化的空白区。GB2312将录入的汉字分红两级:榜首级是常用汉字计3755个,置于16~55区,按汉语拼音字母/笔形顺序排列:第二级汉字是次常用汉字计3008个,置于56~87区,按部首/笔画顺序排列。故而GB2312最多能表明6763个汉字。

  而GBK内码彻底兼容GB2312,一起支撑繁体字,总汉字数有2万多个,编码格局如下,每个GBK码由2个字节组成,榜首个字节为0X81~0XFE,第二个字节分为两部分,一是0X40~0X7E,二是0X80~0XFE。其间与GB2312相同的区域,字彻底相同。把榜首个字节代表的含义称为区,那么GBK里边一共有126个区(0XFE~0X81+1),每个区内有190个汉字(0XFE~0X80+0X7E~0X40+2),一共就有126×190=23940个汉字。点阵库只需依照这个编码规则从0X8140开端,逐个树立,每个区的点阵巨细为每个汉字所用的字节数乘以190。这样,就能够得到在这个字库里边定位汉字的办法:

  当GBKL《0X7F时:Hp=((GBKH-0x81)&TImes;190+GBKL-0X40)&TImes;(sizex2);

  当GBKL》0X80时:Hp=((GBKH-0x81)&TImes;190+GBKL-0X41)&TImes;(sizex2);

  其间GBKH、GBKLL别离代表GBK的榜首个字节和第二个字节(也便是高位和低位),size代表汉字字体的巨细(比方16字体,12字体等),Hp则为对应汉字点阵数据在字库里边的开始地址。

  3.2、体系软件流程

  关于GBK字库和GB2312字库,他们的解码部分部分略有不同,这个差异主要是因为他们的编码办法不同引起的,关于GBK字库,解码的办法如下:

  qh=*code;

  ql=*(++code);

  if(ql《0x7f)

  ql-=0x40;

  else

  ql-=0x41;

  qh-=0x81;

  foffset=((unsignedlong)190*qh+ql)*(size*2);//得到字库中的字节偏移量

  关于GB2312字库,解码的办法如下:

  qh=*code;

  ql=*(++code);

  ql-=0xa1;

  qh-=0xa1;

  foffset=((unsignedlong)94*qh+ql)*(size*2);//得到字库中的字节偏移量

  其间qh、ql别离代表GBK的榜首个字节和第二个字节(也便是高位和低位),size代表汉字字体的巨细(比方16字体,12字体等),foffset则为对应汉字点阵数据在字库里边的开始地址。

  体系启动今后,首要完结时钟的初始化,选用外部8MHz的晶振作为输入时钟,内部锁相环将时钟倍频到72MHz作为体系时钟,完结GPIO的初始化,作为LCD驱动IO的通用IO口的时钟设置为50MHz的推挽形式,接着完结硬件SPI1的初始化,SPI时钟频率设置为18MHz,接着完结液晶的初始化,此进程是通过发送特定的指令序列来完结的,然后改写显现布景色彩,设置字体色彩,通过上面的程序完结字库中汉字点阵序列的查询,将汉字点阵送液晶屏显现。

  体系软件规划的流程图如图4所示。

    

  图4 汉字显现部分程序流程图

  选用办法还不但能够完结规范字体的显现,还能够依据体系要求,选用专用软件生成各种需求的字体,为规划多样性的人机界面体系供给了一种可行的计划。

  4、定论

  本文依据在全站仪使用于飞机的丈量进程中的实际需求,规划了用于丈量核算的人机界面体系,在该体系中,选用的处理器内核为ARM最新的Cortex—M3,它依据最新ARMv7架构,选用了至今停止最小的ARM内核,有效地降低了体系功耗。选用SPIFlash来存储汉字字库,通过五颜六色TFT液晶屏显现,有效地扩展了使用的规模,通过试验验证,本体系的规划办法彻底到达规划要求。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/160043.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部