LED显示系统DMA控制器的设计

主控制板的硬件系统结构
图3-3硬件结构框图
大型led显示系统的主控制板应该能够完成以下功能:
(1)接收pc端发送来要求显示的点阵码以及显示模式并且存储。
(2)根据显示模式对原始点阵码进行排序,以符合dma的传输数据要求。
(3)将排序好的点阵码映射到led显示屏相应显示位置的列数据锁存器并且控制行驱动循环扫描显示。
根据系统要求,以及未来扩展需求,系统结构框图如图3.3所示。本系统设计采用核心板和接口板分开设计的方式,增强了系统应用的灵活性和可扩展性。其中图中虚线框内为核心板,虚线框外为到led显示屏的接口板。核心板完成任务(1)、(2)、(3)。接口板完成逻辑电平转换、译码、锁存等逻辑功能以配合核心板完成任务(3)并且驱动输出信号。
采用并行dma数据传输可选择mcu加dma芯片和具有内部dma控制器的cpu两种方案,从系统结构和成本以及开发复杂度方面考虑,后者更加合理。由于使用硬件dma并行传输列数据,将led显示屏上的一系列同行列数据锁存器视为一段连续的存储单元,由于并行数据传输led显示模块电路结构并不能完全满足16bit并行dma数据传输的要求,而又为了能使上代的led显示驱动模板产品仍能使用,列显示数据需要根据显示模块电路结构及并行dma数据传输方式重新排序,并以重序排列格式存放在指定的显存地址中.当在静态显示模式时,重新排序的数据量并不大,但当动态模式显示时(如上滚显示时),重新排序的列数据以页面的方式存储在显存内,这样将占用大量的存储空间,甚至达到几十m字节.若使用sram作显存成本太高,体积太大,使用廉价大容量的sdram可以很好的解决该问题,但由于sdram的电路特点【2i】,必须在系统中有sdram数据刷新控制器。为减小系统成本和系统复杂度,期望找到自带外部存储控制器的微处器。出于上述考虑于是本系统设计选择使用三星公司arm7tdm【田】内核具有内部dma控制器和sdram存储控制器的s3c44box作系统的主控制器;廉价大容量的sdram选择使用4mxl6bit×4bank的k4s561632d,它对于512x256(8平方米)的单色屏来说完全满足要求了。
由于s3c44box自身不具有非易失性存储器,所以必须外接非易失性存储
器来存放代码及需要保存的点阵码和显示的控制信息。考虑到点阵码和显示控制信息会经常更新,所以非易失性存储器需要能够电重复擦写,由于原始点阵码的数据量可能很大(几百kbyte),并考虑到系统的升级选择使用imxl6bit的sst39vfl601作系统的代码数据存储器,在本系统应用中sst39vfl601的im×16bit存储空间分为代码部分与原始点阵码部分。
3.2.2存储空间配置
图3--4系统存储空间分配图
arm微处理器的理论寻址空间是4gb,采用统一编址的方式,将系统的各类存贮器(如flash、sram、sdra~d、外设、特殊功能寄存器都映射到该地址空间[231.为了便于管理,又将地址空间划分为若干小块,每一个小块称为一个存贮器组(memorybank),通常由硬件电路提供每一个存储器组的选择信
号.s3c44box提供一共256mb的地址空间,分为8个组,每组地址空间为32mb,s3ca4box的[ng-cso~ngcs7l弓l脚就g分别选通这八组地址空间的选通信号引脚田】。本系统设计存储空间分配图如图3.4所示.
主控板的存储空间映射如表3.1所示:
表3-l存储空间分配表
led显示屏所占的存储空间由led的横向级联屏数决定,如对于512“256的屏体,横向级联数是8,存储空间为:16*8*16bit共256byte,可以看出为led屏留出的地址空间是绰绰有余了.
主控板的flash地址范围从0x00000000到0x00200000,共2mbytes。其空间范围被分为两个区域用途见表3-2.
表3-2flash功能空间分配表
主控板的sdram地址范围从0xoc000000到0xodffi珊空间分配与用途如表3.3所示。
表3-3sdram功能空间分配表
3.3硬件电路的详细设计 3.3.1s3c44box简介
32位risc处理器s3c44box采用arm7tdmi内核,提供全面的、通用的片上外设,大大减小了系统电路中除处理器以外的元器件配置,从而最小化系统成本,本系统关注的特性如下:
(1)2.5vrisc体系结构和arm7tdmi内核处理器强大指令系统,支持thumb代码,提高代码密度;支持jtag片上集成ice解决方案。
(2)支持大/小端方式;支持8个存储器bank。其中7个具有固定的bank起始地址和可编程大小,1个具有可编程bank起始地址和bank大小;
其中6个支持rom/sram访问bank,2个rohⅳs融呦ram访问
bank;所有的存储器bank具有可编程的访问操作周期。
(3)内部集成可编程选择使用的8kb高速缓存cache,未用的cache可用作0/4/8kbyte的sram空间。采用保持主存储器与cache内容一致性的“写穿式”策略。
(4)片内的锁相环使mcu工作时钟最大达75mhz
(5)30个中断源,采用向量化的irq中断模式以减少中断的延迟,并支持
fiq为紧急的中断请求进行服务。
(6)2通道通用dma控制器,2通道接口dma控制器,不需要cpu干预,支持存储器到存储器,存储器到10,io到存储器,io到io的dma数据传输。并支持ontheny模式。
s3c44box还有很多其他的应用资源,在此不赘述。在本系统设计中仅使用了l通道通用dma控制器,1通道的串口uart。内部的看门狗定时器及内部的8ksram,以及pc,pg口,在总线选择上使用16bit总线,并使系统工作在小端工作模式。
3.3.2电源电路
电源电路设计主要的考虑因素有:电源的种类、上电次序、数字,模拟混合电源处理方法、空间、输入电压、输出电压、输出电流等,在本系统主控板中需要使用5v、3.3v、2.5v稳压数字直流电源。其中cpu分别需要3.3v和2.5v分别给片上io口和cpu内核供电,而led显示屏接口电路部分需要5v电源
供电。需要注意的是:cpu内核和io口应按照内核先于io口上电,后于io口掉电的规则,但尽可能同时供电,二者的时差不能太长,否则可能毁坏芯片刚。为简化电源电路设计,使用5v直流开关电源输入,通过3.3v和2.5v的线性稳压电源芯片[251得到3.3v和2.5v的直流稳压电源。电路如图3.5所示.
图3-5电源电路原理图
3.3.3晶振复位电路
由于本系统中串口使用9600波特率,使用的系统时钟最好是9600的整数倍,故选用3.6864mhz的晶振并配置s3c44box内部的pll六倍频后得到22.1184mhz的系统时钟,s3c44box内部的pll电路兼有倍频和信号放大功能.为节省控制板成本,使用无源晶振,需要注意的是:
(1)上电后时钟源的选用取决om[3:21弓1脚的逻辑电平状态,如表3-4所示。
(2)3c44box的pllcap引脚需要接一个680pf的补偿电容。
(3)s3c44box的extclk引脚需要通过4.7ko的限流电阻接3.3v的高电平,表明不使用extclk引脚提供时钟[20-1,电路如图3-6所示.
图3-6晶振电路原理图
表3-4时钟源选择om[3:2]配置表
图3.7所示的是一个简单实用的上电复位电路。在系统中,复位电路主要完成系统的上电复位和系统在运行时用户强制按键复位功能。复位电路由简单的rc电路构成,经使用证明,其复位逻辑是可靠的。
图3-7复位电路原理图
该复位电路的工作原理如下:在系统上电时,通过电阻r42向电容c55充电,当c55两端的电压未达到高电平的门限电压时,notgate端输出为低电平,系统处于复位状态;当c55两端的电压达到高电平的门限电压时,notgate端输出为高电平,系统进入正常工作状态。当用户按下按钮s2时,c55两端的电荷通过d10和r42被泄放掉,notgate端输出为低电平,系统进入复位状态,再重复以上的充电过程,系统进入正常工作状态。notgate通过两级非门电路用于按钮去抖动和波形整形;通过调整r42和c55的参数,可调整复位状态的时间,值得注意的是要使上电后s3c44box的nreset要持续4个时钟的低电平,即当系统时钟为22.1184mhz时为200ns。但是,在上电后,系统的晶振往往需要100ms~200ms的时间稳定脚l所以上电后c55正极应保持足够长的低电平的时间。复位时间主要由r和c确定,c55正极电压矿=3.30一e-t/7),f=rc。设0.8v为低电平的上限,选r42为100kq,c55为10uf,可得t*277ms,从而满足复位要求。
3.3.4flash接口电路
系统的代码与从上位机接受到的原始点阵码以及显示控制信息数据存放在cpu外的flash芯片中,当s3c44box上电复位后,它立即从0x00000000地址处取指并开始执行,并把定位在地址0x00000000处的存储器称为bootrom。因此系统的启动代码应放置在0x00000000处,arm系统中通常使用能够快速读取、因此方便写入的flash作为代码和常量存储器。刚上电时cpu对flash的接口不需要任何软件上的配置,因为s3ca4box内部的存储器访问控制寄存器默认的控制时序足够慢,可以读出任何速度的rom芯片数据,但为了充分发挥flash芯片的性能,应在初始化中配置相应存储器的访问时序四l。值得注意的是要使cpu能正常地对flash进行操作,需要注意两个硬件设置:3cy4,端和bank0的总线宽度冈.arm体系结构可以用两种方式来存储字(这里的字是32bit即4byte),称为大端格式和小端格式.s3c44box的endian引脚的输入电平的逻辑来确定数据类型是大端还是小端【3ll。0为小端,l为大端。在本系统中使用小端方式,所以endlan应该接一下拉电阻后接地,连接示意图如图3.7所示.
图3-8s3c44box与flash连接示意图
bootrom在地址上位于arm处理器的bank0区,它可能具有具有多种数据总线宽度,这个宽度是可以通过硬件设定的,即通过s3c44box上om[1,o】引脚上的逻辑电平设定,如表3-5所示.
表3.5bootrom在bank0的数据总线宽度设定
本系统采用一片sst39vfl601(1mxl6bit)作为代码和数据存储器就能够满足系统要求了,所以本系统使用16bit外部总线。因此om[1,o]-脚应该设为ol,并且初始化程序中将bwscon寄存器中的dwo设为01。本系统采用tsop封装的sst39vfl601。应注意的是sst39vfl601的wp引脚,当wp接稳定的低电平时扇区o是不能被擦除的1321,只有wp脚接稳定的高电平或浮空时(当该脚浮空时内部电路将其拉高)才能擦除,所以应在该脚处设置一根跳线,下载程序时将其浮空,而在产品运行时使其接低电平。由于s3c44box是按照字节编址的,又由于sst39vfl601是16bit为一个存储单元,因此处理器的地址向左偏离一位田l,采用addri与sst39vfl601的a0相连,即:s3c44box的addr[20:l】对应着flash的a[19:o】。由于flash的映射在bank0区域内,ssl”39vfl601的片选与s3c44box的ngcs0。
3.3.5sdram接口电路
sdram是易失性存储器,在调电后数据立即消失,但是其具有存储速度快,容量大成本低的特点,广泛应用于各种嵌入式系统,本系统采用4mxl6bhx4b£mk,即32mbyte的sdr■um芯片k4s561632d作为系统的r/w段、显存、上位机通信段,中断向量表,堆栈数据的存储器,存储空间的详细配置见第3.2.2节。由于sdram的存储单元电路的特点,存储单元可以理解为一个电容,总是倾向于放电,为了避免数据丢失,必须定时充电刷新。s3c4480x芯片本身提供了与dram和sdram进行直接接口的方案,因为不需要编程外围的逻辑电路来实现sdram的刷新时序,只需对s3c44box内容相应若干个存储器接口控制寄存器进行适当的配置即可。s3c44box与k4s561632d的连接示意图如图3-9所示。
k4s561632d是一款容量为32mb的sdram(同步动态随机存储器),所有的输入与输出信号与cpu的前端总线的系统时钟相同,所以s3c4480x为其提供同步时钟脚sclk,该脚与k4s561632d的clk脚相连。
k4s561632d的存储空间组织方式是:4m×16bit×4bank,是多bank结构口‘1.前面提到过dram的存储单元电路特点相一个电容,在读取数据前需要进行预充电,采用多bank结构可以在一个bank进行预先充电时间对另外一个bank进行读写操作,这样当进行一行读取后,对已预充电的bank又可以马上读取了,这样就省去了预先充电的时间,大大提高了存储器的访问速度。k4s561632d分为4个bank,它内部对4个bank进行管理。控制各个bank进行预先充电,它上面的ba0,bai引脚就是用来实现4个bank间的选择。由于k4s561632d的容量为32mb,其bal与ba2接地址线a24、a23。由于高速数字布线的需要,在pcb布线时,几根重要的信号线端应接20欧阻抗匹配电阻,以保证高速数字信号的畸变不超过要求的范围。
再读取操作时候首先使cke引脚有效,激活k4s561632d,随后是一个读或者写有效,在激活后的地址用来选择需要的操作的bank和行(ba0、bai用来选择bank,a0道all用来选择行)。在行地址被读取并延迟一到几个时钟后(潜伏期)地址总线上a0到a8用来选择操作开始的列地址,这样,数据就被读取出来了。
3.3.6主控电路与led屏的接口电路设计
本显示系统选用基于arm7tdmi内核并带有内部dma控制器的s3c44box作主控制器,使其工作在arm状态,为了加快传输数据的速度,提高传输数据的效率,本系统的设计思想是:
(1)将led显示屏虚拟的视为一段连续的存储空问【3习.c2)使用s3c44box内部的dma控制器实现数据的准确传输,在传输过程中cpu不参与,实现在连续的读写操作时就完成一段数据的传输。
(3)使用并行技术,主控板到led屏的数据总线宽为16bit,同时对纵向级联的两个显示模式传输数据。
在第2.2.4节中已说明了将led显示屏视为一段连续的存储空间是可能的,它是使用dma控制器在连续的读写操作完成一段数据传输的基础。由第2.2.4节可知,并行数据传输显示模板上的译码电路与错位级联思想可使每个显示模板及显示模板上的各个列数据锁存器准确选通,如图2-6所示,横向级联的显示模板可看成一段连续的存储单元,所以对显示驱动板传输列数据实际上就是对存储单元的写操作.这样就可以利用cpu写存储器的控制线、数据总线、地址总线上出现的信号作传输列数据到显示驱动板第一级列数据锁存器锁存的控制信号。第一级列数据锁存器的选通译码器的译码信号可以利用微控制器的地址线,由于led显示屏一个显示驱动模块上共有16对锁存器,所以需要4根低位地址线作第一级列数据锁存的译码信号,而横向级联可最多级联8块显示驱动模块,所以需要三根地址高位地址线,但为了以后扩展需要预留一根高位地址线共8根地址线。列数据由数据总线传送。
由第2.2.4节可知,并行数据传输的led显示模板上的数据总线宽度是8bit的,而主控板到led显示屏的数据总线宽度是16bit,所以主控板对led显示屏的一次写操作实际上是同时对纵向级联的两个显示模板的同名行同名列传输了数据,这样提高了数据传输的速度和效率。但是这样使用16bit宽度的并行dma传输技术需要软件先将原始的点阵码按要求进行排序,排序算法仅需在接收到新的显示内容后或重新上电后运行一次,这样对于异步显示系统是可以接受的。算法将在第3.4.4节详细讨论,在此我们假设显存中的数据都是按要求完成排序的,可以直接进行dma传输。
图3-10主控板与led屏接口电路原理图
所以主控电路与led显示屏接口电路应能实现一下功能:
(1)选通任意位置的显示模块及该模块上的第一级列数据锁存器。将该位置要显示的点阵码准确锁存,并能控制在第一级列数据锁存器数据刷新后将刷新数据锁存到第二级列数据锁存器并输出。
(2)能控制选通驱动16行同名行中一行进行逐行扫描显示.
(3)实现主控芯片3.3v到led屏5v的逻辑电平转换136】。主控板与led屏接口电路原理图示意图如图3·10所示。对于一个大型led屏其结构可分为纵向级联和横向级联,这种结构类似于一个三维数组.们假设一个三维数组led[i][j]啕,其中;
i=0,l‘2…,m表示led屏纵向级联级的序号。
j=o,1’2…,n表示led屏横向级联级的序号。
k=0,l,2…,15表示显示模块上16个第一级列数据锁存器的序号.
由于系统使用16bit并行总线数据传输方式,并将led屏视为一段连续的存储单元,故使用a【4:l】显示模块上选通第一级列数据锁存器译码器(图2.5u2)的译码输入,即为三位数组的k变量;使用a【8:5】作选通横向级联显示模块的译码器(图3-9u7-u15)译码输入,即为三位数组的j变量;由于led屏要求具有良好的灵活性,又由于采用dma传输数据要求点阵码存放顺序的技术要求,纵向级联级选通不满足使用地址总线译码选通的条件,所以使用s3c44box的pg[2:0]作纵向级联级选通译码器的译码输入,即三位数组的i变量。
由于地址和数据总线上的状态不断变化,所以在对led屏进行写操作时地
址和数据信号应进行锁存,主控板上分别使用图3-9中u2、u3和u4锁存对led写操作时的地址、数据总线上的状态.led屏分配首址0x2000000,当对其进行写操作时,s3c44box的ngcsl和nwe脚会出现可编程控制时延的有效低电平。使ngcsl经一个非门作u2、u3和u4的锁存使能控制信号,保证仅在对led屏访问时地址、数据总线上的信号才被锁存;使nwe经一个非门作屏端第一级列数据锁存器(图2.5u3-u19)的锁存使能控制信号,保证只有当刷新数据稳定出现在列数据锁存其输入端时才被锁存;使s3c44box的pci0作所有屏端第二级锁存器(图2-5u20.u35)的锁存使能控制信号线;使用s3c44box
的pci3:0]作16行驱动译码器(图2.5u1)的译码输入。由于数据传输时只需要主控板对led屏输出控制,不需要信号反馈,所以接口电路采用廉价的5v供电的hct电路芯片鲫口8l[391]方案,就可满足主控芯片3.3v到led屏5v的逻辑电平转换。
在dma传输数据时,我们更关心的是dma的写操作,时序如图3.1l所示.tl时刻dma写操作开始,地址和数据总线上出现了咖屏相应位置的地址和刷新数据;t2时刻ngcsl引脚出现有效低电平,地址和数据总线上的数据被锁存到图3-10中u2-u4并输出;t3时刻nwe引脚出现有效低电平,图3.10中u2-u4的输出数据被锁存到屏端第一级列数据锁存器并输出。这样主控制器就完成了一次列数据的刷新。
图3.11dma的写操作时序图
3.3.7串口电路设计
为消弱电气噪声对信号传输的影响,主控板子上位机通信采用完全电器隔离的半双工rs485电路㈣。电源使用变压器隔离,信号线和控制线使用光耦离,电路如图3-12所示。
图3-12485串口电路原理图
rs485装换芯片采用半双工485转换芯片max481t411。由于使用485转换电路使用5v供电,而主控芯片s3c44box使用3.3v供电,因此存在逻辑电平转换问题.本系统在串口电路中使用能够实现3.3v到5v和5v到3.3v逻辑电平转换芯片sn74lvc4245a,它的引脚说明如表3-6所示。
表3-6sn74lvca245a的引脚描述
本设计使用s3c44box的10口pcio作串口收发控制的控制线,但存在逻辑电平转换的问题,pci0首先通过74hct244输出得到5v逻辑电平信号线control,由它做串口收发控制的控制线和sn74lvc4245a的数据流向控制线。control控制线经光耦隔离成为conrt控制线控制信号真值表如表3.7所示.
表3-7串口接口控制线的真值表
由真值表可知,s3c44box端3.3v逻辑电平的串口引脚rxd0应txd0应连接在sn74lvca245a的b总线上;485串口电路5v逻辑电平的引脚rxd和txd应连接在sn74iⅳc4245a的a总线上。

基于STM32的雷管电子保险装置设计
PTPX功耗分析之Average Power Analysis
你觉得智能摄像头怎么样
物联网是怎么改变我们的销售方式的
多功能医疗台车给人带来舒适感,操作简单方便
LED显示系统DMA控制器的设计
小型化需求中微控制的封装浅谈
晶电打入全球首款Mini LED笔电供应链 法人看好后续Mini LED接单情况
“2018首届全球物联网产业大会”在深圳隆重举行
补偿电容器温度升高怎么回事
Luna收购光纤传感方案商OptaSense 具有里程碑意义
IC设计正面临着持续不断上涨的代工成本
保护备份数据免受勒索病毒攻击的方法
共享单车智能管控技术手段探讨
Dynamic ReLU:根据输入动态确定的ReLU
模拟电路网络课件 第二十六节:差分式放大电路
如何实现STM8L151G6U6超低功耗
CDMA2000 1X EV-DV有什么特点?
杠杆合约交易系统开发_永续合约系统开发
我们为什么要将无人机应用在消防领域