1、第7章 DSP最小系统设计教学内容及要求 教学内容:教学内容:本章对C54XDSP的最小系统设计相关问题进行了详细讨论。主要包括TMS320C54X硬件系统组成;时钟及复位电路设计;供电电路设计;外部存储器和I/O扩展设计;A/D和D/A接口设计;3.3V和5V混合逻辑设计以及JTAG在线仿真接口电路设计。 教学要求:教学要求:本章要求学生了解TMS320C54X硬件系统组成,掌握时钟及复位电路设计;供电电路设计;外部存储器和I/O扩展设计;A/D和D/A接口设计;3.3V和5V混合逻辑设计以及JTAG在线仿真接口电路设计等几个方面的设计方法。能够独立进行相关电路的硬件原理图设计、制作及调试。
2、本章主要内容F7.1 TMS320C54X硬件组成及最小系统设计F7.2 TMS320C54X的时钟及复位电路设计 F7.3 供电系统设计 F7.4 外部存储器和I/O扩展设计F7.5 A/D和D/A接口设计F7.6 3.3V和5V混合逻辑设计F7.7 JTAG在线仿真调试接口电路7.1 TMS320C54X硬件组成及最小系统设计7.1.1 TMS320C54X硬件组成 图 7.1 给出了一个典型的 DSP 电路,从结构框图可以看出,典型的 DSP 目标板包括DSP 及 DSP 基本系统、存储器、模拟控制与处理电路、各种控制口与通信口、电源处理以及为并行处理提供的同步电路等。7.1.1 TMS
3、320C54X7.1.1 TMS320C54X硬件组成硬件组成图7.1 DSP 电路的基本硬件组成7.1.1 TMS320C54X最小系统设计o 最小系统模块是使得DSP芯片TMS320C5402能够工作的最精简模块,它主要包括电源电路、复位电路、时钟电路和存储器接口电路等。DSP硬件系统设计包括以下步骤:o 第一步:确定硬件实现方案。在考虑系统性能指标、工期、成本、算法需求、体积和功耗核算等因素的基础上,选择系统的最优硬件实现方案。o 第二步:器件的选择。一个DSP硬件系统除了DSP芯片外,还包括ADC、DAC、存储器、电源、逻辑控制、通信、人机接口、总线等基本部件。过程如图7.1所示。7.
4、1.1 TMS320C54X最小系统设计图7.1 DSP硬件设计过程7.1.1 TMS320C54X最小系统设计1. DSP芯片的选择 首先要根据系统对运算量的需求来选择; 其次要根据系统所应用领域来选择合适的DSP芯片; 最后要根据DSP的片上资源、价格、外设配置以及与其他元部件的配套性等因素来选择。2. ADC和DAC的选择 A/D转换器的选择应根据采样频率、精度以及是否要求片上自带采样、多路选择器、基准电源等因素来选择;D/A转换器应根据信号频率、精度以及是否要求自带基准电源、多路选择器、输出运放等因素来选择。7.1.1 TMS320C54X最小系统设计3. 存储器的选择 常用的存储器有
5、SRAM、EPROM、E2PROM和FLASH等。可以根据工作频率、存储容量、位长(8/16/32位)、接口方式(串行还是并行)、工作电压(5V/3V)等来选择。4. 逻辑控制器件的选择 系统的逻辑控制通常是用可编程逻辑器件来实现。o 首先确定是采用CPLD还是FPGA;o 其次根据自己的特长和公司芯片的特点选择哪家公司的哪个系列的产品;o 最后还要根据DSP的频率来选择所使用的PLD器件。7.1.1 TMS320C54X最小系统设计5. 通信器件的选择 通常系统都要求有通信接口。首先要根据系统对通信速率的要求来选择通信方式。然后根据通信方式来选择通信器件。6. 总线的选择 常用总线:PCI、
6、ISA以及现场总线(包括CAN、3xbus等)。可以根据使用的场合、数据传输要求、总线的宽度、传输频率和同步方式等来选择。 7. 人机接口 常用的人机接口主要有键盘和显示器。o通过与其他单片机的通信构成;o与DSP芯片直接构成。7.1.1 TMS320C54X最小系统设计8. 电源的选择 主要考虑电压的高低和电流的大小。既要满足电压的匹配,又要满足电流容量的要求。 第三步:原理图设计; 从第三步开始就进入系统的综合。在原理图设计阶段必须清楚地了解器件的特性、使用方法和系统的开发,必要时可对单元电路进行功能仿真。 第四步:PCB设计; 第五步:硬件调试; 7.2 TMS320C54X的时钟及复位
7、电路设计 时钟及复位电路是 DSP应用系统必须具备的基本电路,TMS320C54X 可以通过锁相环PLL为芯片提供高稳定频率的时钟信号,同时实现时钟的倍频或分频。对于一个 DSP系统而言,上电复位电路虽然只占很小的一部分,但它的好坏将直接影响系统的稳定性。下面分别来介绍这两种电路。7.2.1 时钟电路设计 时钟电路用来为 TMS320C54X 芯片提供时钟信号,由内部振荡器和一个锁相环 PLL组成,可通过晶振或外部的时钟驱动。时钟电路:内部振荡器锁相环PLL。7.2.1 时钟电路设计1时钟信号的产生时钟信号的产生 C54X时钟信号的产生有两种方法:外部时钟源;片内振荡器 使用外部时钟源 将外部
8、时钟信号直接加到DSP芯片X2/CLKIN引脚,而X1引脚悬空。外部时钟源可以采用频率稳定的晶体振荡器,具有使用方便,价格便宜,因而得到广泛应用。如图7.2所示。7.2.1 时钟电路设计图7.2 外部振荡示意图7.2.1 时钟电路设计 使用芯片内部的振荡器 在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动内部振荡器。如图7.3所示图7.3 内部振荡示意图(C1=C2=20pF)7.2.1 时钟电路设计2锁相环PLL 锁相环功能:倍频、分频,同时对时钟信号提纯,提供高稳定的时钟信号。C54X的锁相环两种配置形式: 硬件配置的PLL:用于C541、C542、C543、C545和C546
9、; 软件可编程PLL:用于C545A、C546A、C548、C549、C5402、C5410和C5420。 7.2.1 时钟电路设计 硬件配置的PLL 硬件配置的PLL是通过设定C54X的3个时钟模式引脚(CLKMD1、CLKMD2和CLKMD3)的状态来选择时钟方式。 上电复位时,C54X根据这三个引脚的电平,决定PLL的工作状态,并启动PLL工作。进行硬件配置时,其工作频率是固定的(P224)。若不使用PLL,则对内部或外部时钟分频,CPU的时钟频率等于内部振荡器频率或外部时钟频率的一半;若使用PLL,则对内部或外部时钟倍频,CPU的时钟频率等于内部振荡器或外部时钟源频率乘以系数N,即时钟
10、频率=(PLLN)。7.2.1 时钟电路设计软件配置的PLL 软件配置的PLL具有高度的灵活性。它是利用编程对时钟方式寄存器CLKMD的设定,来定义PLL时钟模块中的时钟配置。软件PLL提供各种时钟乘法器系数,并能直接接通和关断PLL。7.2.1 时钟电路设计 时钟方式寄存器CLKMD 用来定义PLL时钟模块中的时钟配置,为用户提供各种时钟乘系数,并能直接通断PLL。时钟方式寄存器CLKMD如表7-1所示。表7-1时钟方式寄存器CLKMD7.2.1 时钟电路设计 软件PLL的工作方式 通过软件编程,可以使软件PLL实现两种工作方式: PLL方式,即倍频方式。 芯片的工作频率等于输入时钟CLKI
11、N乘以PLL的乘系数,共有31个乘系数,取值范围为0.2515。 DIV方式,即分频方式。 对输入时钟CLKIN进行2分频或4分频。7.2.1 时钟电路设计 软件PLL的工作方式 频率转换方式:复位时时钟频率由3个时钟引脚决定(教材P226),复位后可以通过软件编程改写CLKMD寄存器的方式来改变倍频系数。倍频时不能直接切换倍频系数,要先回到分频模式,然后再改变倍频系数。7.2.1 时钟电路设计 以C5402为例,说明时钟电路设计方法,芯片提供时钟信号,由一个内部振荡器和一个锁相环PLL组成,可通过芯片内部的晶体振荡器或外部的时钟电路驱动。C5402时钟信号的产生有两种方法:使用外部时钟源、使
12、用芯片内部的振荡器。若使用外部时钟源,只要将外部时钟信号直接加到DSP芯片的X2/CLKIN引脚,而X1引脚悬空;若使用芯片内部的振荡器,只要在芯片的X1和X2/CLKIN引脚之间接入一个晶体,用于启动内部振荡器。本系统采用内部振荡器,在管脚Xl和X2/CLKOUT之间连接一个10MHz晶体来启动内部振荡器,如图7.4所示。7.2.1 时钟电路设计123456ABCD654321DCBATitleNumberR evisio nSizeBDate:21 -Jan -2 011Sh eet of File:E:softwarep ro tel99 seExamplesMy Design 3.dd
13、 bDrawn B y:C 120 pFC 220 pFC 540 2X1X2/CLKIN图7.4 时钟电路7.2.1 时钟电路设计 为了实现DSP系统实时处理信号的效果,希望系统频率越快越好。C5402最高可达100MHz工作频率,如果仍采用传统的2分频或4分频的方式,势必要求外部频率很高,这里我们采用了更加灵活的可编程PLL方式。 C5402内部具有一个可编程锁相环(PLL),它可以配置为以下两种模式:o PLL模式,输入时钟乘以一个l31之间的常数;o DIV模式,输入时钟除以2或40。7.2.1 时钟电路设计 PLL具有倍频的功能,其输出信号的频率是输入信号的频率乘上一个倍数,正是PL
14、L把外部基准频率变成多种频率提供给不同的具体系统,以满足各种应用的需要。PLL受存储器映射的时钟模式寄存器CLKMD控制,复位后CLKMD的值根据DSP芯片三根输入引脚CLKKMD3CLKKMD3确定,从而确定DSP的工作时钟。本方案中,外接晶体频率为10MHz为了得到倍频系数10,需设置时钟模式寄存器CLKMD的值为9007h,引脚CLKMD1CLKKMD3设计成001,则复位后VC5402的工作频率是1010=100MHz。7.2.2 复位电路设计 C5402的复位输入引脚RS为处理器提供了一种硬件初始化的方法,它是一种不可屏蔽的外部中断,可在任何时候对C54X进行复位。当系统上电后,RS
15、引脚应至少保持5个时钟周期稳定的低电平,以确保数据、地址和控制线的正确配置。复位后(RS回到高电平),CPU从程序存储器的FF80H单元取指,并开始执行程序。 C5402的复位分为软件复位和硬件复位,软件复位是通过执行指令实现芯片的复位,硬件复位是通过硬件电路实现芯片的复位,硬件复位有上电复位、手动复位和自动复位三种 7.2.2 复位电路设计1. 上电复位电路 上电复位电路是利用RC电路的延迟特性来产生复位所需要的低电平时间。由RC电路和施密特触发器组成,如图7.5所示。 图7.5 上电复位电路 7.2.2 复位电路设计 上电瞬间,由于电容C上的电压不能突变,使RS仍为低电平,芯片处于复位状态
16、,同时通过电阻R对电容C进行充电,充电时间常数由R和C的乘积确定。为了使芯片正常初始化,通常应保证RS低电平的时间至少持续3个外部时钟周期。但在上电后,系统的晶体振荡器通常需要100200ms的稳定期,因此由RC决定的复位时间要大于晶体振荡器的稳定期。为了防止复位不完全,RC参数可选择大一些。复位时间可根据充电时间来计算:7.2.2 复位电路设计电容电压: (7-1)时间常数: (7-2)复位时间: (7-3))e -(1VV-tcccRCV-VVRClntCCCCC设VC=1.5V为阈值电压,选择R=100k,C=4.7F,电源电压VCC=5V,可得复位时间t=167ms。随后的施密特触发器
17、保证了低电平的持续时间至少为167ms,从而满足复位要求。7.2.2 复位电路设计2. 手动复位电路手动复位电路 手动复位电路是通过上电或按钮两种方式对芯片进行复位,如图7.6所示。电路参数与上电复位电路相同。当按钮闭合时,电容C通过按钮和R1进行放电,使电容C上的电压降为0;当按钮断开时,电容C的充电过程与上电复位相同,从而实现手动复位。7.2.2 复位电路设计图7.6手动复位电路7.2.2 复位电路设计3. 自动复位电路 (1)由于实际的DSP系统需要较高频率的时钟信号,在运行过程中极容易发生干扰现象,严重时可能会造成系统死机,导致系统无法正常工作。为了解决这种问题,除了在软件设计中加入一
18、些保护措施外,硬件设计还必须做出相应的处理。目前,最有效的硬件保护措施是采用具有监视功能的自动复位电路,俗称“看门狗”电路。 (2)自动复位电路除了具有上电复位功能外,还能监视系统运行。当系统发生故障或死机时可通过该电路对系统进行自动复位。基本原理:是通过电路提供的监视线来监视系统运行。当系统正常运行时,在规定的时间内给监视线提供一个变化的高低电平信号,若在规定的时间内这个信号不发生变化,自动复位电路就认为系统运行不正常,并对系统进行复位。7.2.2 复位电路设计 (3)自动复位电路的设计方案:用555定时器和计数器组成;采用专用的自动复位集成电路。如Maxim公司的MAX706、MAX706
19、R芯片。MAX706R是一种能与具有3.3V工作电压的DSP芯片相匹配的自动复位电路。由MAX706R组成的自动复位电路如图7.7。引脚6为系统提供的监视信号CLK,来自DSP芯片某个输出端,是一个通过程序产生的周期不小于lOHz的脉冲信号。引脚7为低电平复位输出信号,是一个不小于16s的复位脉冲,用来对DSP芯片复位。当DSP处于不正常工作时,由程序所产生的周期脉冲CLK将会消失,自动复位电路将无法接收到监视信号,MAX706R芯片将通过引脚7产生复位信号,使系统复位,程序重新开始运行,强迫系统恢复正常工作。7.2.2 复位电路设计图7.7 自动复位电路7.2.2 复位电路设计 (4)本系统
20、中,由于我们选择了DSP专用的电源管理芯片TPS73HD318,该芯片本身可以提供宽度为200ms的低电平复位脉冲,为了是系统电路简单,所以不再设计自动复位电路。7.3 供电系统设计7.3.1 DSP供电方案 TMS320C54X系列DSP大部分采用低电压供电方式,以降低DSP芯片功耗。TMS320C54X系列DSP的电源分为两种,即内核电源(CVDD)和I/O电源(VDD)。其中I/O电源一般采用3.3V电压,而内核电源为1.8V,降低内核电压的主要目的是降低功耗。以TMS320VC5402为例,介绍DSP系统电源设计。 DSP芯片采用的供电方式,主要取决于应用系统中提供什么样的电源。在实际
21、中,大部分数字系统所使用的电源可工作于5V或3.3V,因此有两种产生芯片电源电压的方案。 7.3.1 DSP供电方案第一种方案: 5V电源通过两个电压调节器,分别产生3.3V和1.8V电压。如图7.8所示。 图7.8 第一种方案框图7.3.1 DSP供电方案第二种方案: 使用一个电压调节器,产生1.8V电压,而DVDD直接取自3.3V电源。如图7.9所示。图7.9 第二种方案框图7.3.1 DSP供电方案 电源转换芯片 Maxim公司:MAX604、MAX748;TI公司:TPS71xx、TPS72xx、TPS73xx等系列。 电源芯片分类 线性稳压芯片使用方法简单,电源纹波电压较低,对系统的
22、干扰较小,但功耗高。 开关电源芯片电源效率高,但电源所产生的纹波电压较高,容易对系统产生干扰。 7.3.2 DSP电源电路 采用3.3V单电源供电,可选用TI公司的TPS7133、TPS7233和TPS7333;Maxim公司的MAX604、MAX748。采用可调电压的单电源供电,可选用TI公司的TPS7101、TPS7201和TPS7301。采用双电源供电,可选用TI公司的TPS73HD301、TPS73HD325、TPS73HD318等芯片。7.3.2 DSP电源电路1. 采用3.3V单电源供电 由MAX748芯片构成的电源。电源电压:3.3V,最大电流:2A。如图7.10所示。 图7.1
23、0 MAX748芯片构成的电源 7.3.2 DSP电源电路2. 采用可调电压的单电源供电 TI公司的TPS7101、TPS7201和TPS7301等芯片提供了可调节的输出电压,其调节范围为1.2V9.75V,可通过改变两个外接电阻阻值来实现。如图7.11所示。电压计算公式如式(7-4)所示。)1(210RRVVref (7-4) (7-4) Vref为基准电压,典型值为1.182V。R1和R2为外接电阻,通常所选择的阻值使分压器电流近似为7A。7.3.2 DSP电源电路图7.11 TPS7301电路图7.3.2 DSP电源电路3. 采用双电源供电 由TPS73HD318芯片组成的双电源电路。图
24、7.12为根据TPS73HD318芯片性能设计实现双电压输出的电源电路方案,具体分析如下: TPS73HD318芯片可以提供最高750mA的电流,为了适应较大的电流输出场合,该芯片输入和输出的管脚都采用两个管脚,这样可以提高电流的通过率并有利于芯片散热。7.3.2 DSP电源电路图7.12 TPS73HD318芯片实现双电压输出电路7.3.2 DSP电源电路 1.8V稳压器输入部分为1IN两个管脚,输入+5V的VCC,用luF的电容对输入电源滤波,使输入电压变得更稳定;输出部分为lOUT两个管脚,IFB/SENSE端子也必须接到lOUT管脚,用33 uF的电容来实现滤波功能,以提供高稳定性的1
25、.8V输出。 3.3V稳压器输入部分为2IN两个管脚,输入+5V的VCC,用1uF的电容对输入电源滤波;输出部分为两个2OUT管脚,将2SENSE直接接到2OUT上得到3.3V的输出,用33uF的电容来实现滤波功能,以提供高稳定性的3.3V输出。7.4 外部存储器和I/O扩展设计 尽管许多 DSP 片内存储器很大,但片外存储器仍是不可缺少的。片外存储器的作用包括: 用EPROM/FLASH等非易失存储器为DSP固化程序。仅有少数DSP,如TMS320F206内部有FLASH,可以不外挂 EPROM/FLASH。大多数DSP在加电后,从EPROM/ FLASH中读取固化程序,将其装到片内或片外R
26、AM中运行,这样做的一个原因是RAM 的访问速度较快。 7.4 外部存储器和I/O扩展设计 (2) 用片外RAM存储大量数据。用FIFO(先进先出)、双端口存储器等与其他设备握手并传输数据。C54X 的片内通用I/O资源有限,而在实际应用中,很多情况要通过输入/输出接口完成外设与 DSP 的联系,因此,一个应用系统 I/O的扩展往往是不可缺少的。 C54X DSP的外部接口包括数据总线、地址总线和一组用于访问片外存储器与I/O端口的控制信号线,C54X DSP外部程序、数据存储器以及I/O扩展地址和数据总线的复用,完全依靠片选和读写选通配合时序控制完成外部程序存储器、数据存储器和扩展I/O的操
27、作。7.4.1 外扩数据、程序存储器电路设计 1. 注意事项 o 选择存储芯片容量;o 存储器速度o 选择逻辑控制芯片,以满足程序扩展、数据扩展和I/O扩展的兼容;o 与5V存储器扩展时,要考虑电平转换。7.4.1 外扩数据、程序存储器电路设计图7.13 DSP 与外部存储器的接口7.4.1 外扩数据、程序存储器电路设计 CY7C1041V33 是一款高性能16位CMOS 静态RAM,容量为256K16字。分别有18位地址线和16位数据线,控制线包括片选信号CE、写使能线WE、低字节使能线BLE、高字节使能线BHE、输出使能线OE。工作电压为 3.3V,与C54X外设电压相同。工作速度根据型号
28、不同而不同。存取时间从12ns到25ns可选。CY7C1041V33的结构如图7.14所示,功能表如表7-2所示。7.4.1 外扩数据、程序存储器电路设计图7.14 CY7C1041V33结构7.4.1 外扩数据、程序存储器电路设计表7-2 CY7C1041V33功能表7.4.1 外扩数据、程序存储器电路设计 图7.15所示的是DSP与CY7C1041V33的使用接口电路图。地址、数据线分别相连,其控制逻辑电路选用了可编程逻辑器件EMP7128 来实现,片选信号、输出使能、写使能信号的逻辑关系可用VHDL语言描述如下:7.4.1 外扩数据、程序存储器电路设计图7.15 VC5402与 CY7C
29、1041V33的接口电路7.4.1 外扩数据、程序存储器电路设计ENTITY EPM7128 IS PORT(nMSTRB,R/W,DS,nMSC :IN STD_LOGIC; CE1,RWE,ROE,READY :OUT STD_LOGIC); END EPM7128; ARCHITECTURE bhv OF EPM7128 IS CE1= DS; RWE = R/W OR nMSTRB; ROE = NOT R/W OR nMSTRB; READY = nMSC; END bhv; 低字节读写控制线BLE和高字节读写控制线BHE 均接地,实现字的读写 7.4.1 外扩数据、程序存储器电路设
30、计 2. 外扩程序存储器电路设计 o由于DSP对片内存储器的操作速度远大于对片外存储器的操作速度,因此系统设计时,应尽量选用能满足系统要求而不进行程序存储器扩展的一款 DSP。当DSP确实不能满足系统代码及数表空间的要求时,才进行程序存储器的扩展。o外部程序存储器扩展使用 RAM/EPROM/EEPROM/FLASH,可分为非易失性和易失性两种,EPROM/EEPROM/Flash 为非易失性的存储器,具有掉电数据不丢失的特点,但读取速度慢。如果 DSP直接从非易失存储器读取代码,将会大大限制 DSP的运行速度。RAM读写速度快,但掉电不能保存代码。因此EPROM/EEPROM/FLASH 功
31、能是为DSP 提供固化的程序代码和数据表,而RAM的作用是为 DSP提供运行指令码。目前流行的DSP(如C54X)在片内ROM中固化了引导加载程序(Bootloader),加电复位后,DSP 启动这一程序,将片外非易失存储器的程序指令搬移到片内/外高速程序 RAM 后,然后在RAM 中运行程序,使指令的执行速度大大提高。7.4.1 外扩数据、程序存储器电路设计 下面用 AM29LV400B FLASH与C54X 接口来说明程序存储器扩展的方法。AM29LV400B是 AMD公司新推出的256K16 位FLASH存储器,采用CMOS工艺,可直接与3.3V的DSP接口,最快的存取速度高达55ns,
32、功耗低,是一款性价比极高的Flash存储器。AM29LV400B采用48脚 FBGA或44脚SO封装,引脚功能如表7-3所示。7.4.1 外扩数据、程序存储器电路设计 由于C5402的外设存储器、I/O 外设共用地址和数据总线,在不进行程序读操作时,Am29LV400B 一定处于高阻状态,否则,将影响与地址、数据总线相连接的存储器和 I/O的正常工作。扩展的程序存储器电路图如图7.16所示,根据程序存储器的读写时序,EMP7128 的逻辑使用VHDL语言描述如下:图7.16 DSP 与外扩的程序存储器接口电路 7.4.1 外扩数据、程序存储器电路设计 ENTITY EPM7128 IS POR
33、T ( nMSTRB,R/W :IN STD_LOGIC; FCF,RWE,ROE :OUT STD_LOGIC); END EPM7128; ARCHITECTURE bhv OF EPM7128 IS FCF = PS; RWE = R/W OR nMSTRB; ROE = NOT R/W OR nMSTRB; END bhv; 从程序存储器的读写时序可知:当PS =0 时,MSTRB =0,可以对存储器进行读操作;当PS =1 时,程序存储器被挂起,MSTRB 的状态对存储器没有影响。所以控制信号在EMP7128 内的逻辑关系为:读 ROE=NOT R/W OR nMSTRB;写 RWE
34、 = R/W OR nMSTRB。7.4.2 I/O(输入/输出接口)扩展电路设计 RDRD :读信号端,高电平有效; : 写信号端,低电平有效;:复位端,低电平有效; : 片选信号,低电平有效;A0:寄存器选择端; DB7DB0:数据线。 当A0=0时,选择命令寄存器;当A0=1时,选择数据寄存器。 (2) (2) 连接图连接图连接图为图7.17。命令端口地址:COMMP=CFFFH。数据端口地址:DATAP=EFFFH图图7.17 DSP7.17 DSP与与A0902A0902连接图连接图 (3) (3) 驱动程序驱动程序 LD #lcd_data,DP ;设定页指针NOPST #DTYS
35、ET,lcd_data ;送DTYSET命令字CALL writecomm ;调写命令字子程序ST #031H,lcd_data ;送显示数据CALL writddata ;调写数据子程序ST #PDINV,lcd_data ;送PDINV命令字CALL writecomm ;调写命令字子程序ST #SLPOFF,lcd_data ;送SLPOFF命令字CALL writecomm ;调写命令字子程序初始化液初始化液晶程序晶程序 writecomm: ;写命令字子程序PORTW lcd_data,COMMP ;输出命令字CALL delay ;调延时子程序RET ;子程序返回writedata
36、: ;写数据子程序PORTW lcd_data,DATAP ;输出显示数据CALL delay ;调延时子程序RET ;子程序返回 ;设置液晶亮度程序ST #VOLCTL,lcd_data ;送设定亮度命令字CALL writecomm ;调写命令字子程序ST #010H,lcd_data ;送亮度数据CALL writedata ;调写数据子程序2. 2. 键盘的连接与驱动键盘的连接与驱动 键盘作为常用的输入设备应用十分广泛。它是由若干个按键所组成的开关阵列,分为编码键盘和非编码键盘两种。 编码键盘除了设有按键外,还包括有识别按键闭合产生键码的硬件电路,只要有按键闭合,硬件电路就能产生这个按
37、键的键码,并产生一个脉冲信号,以通知CPU接收键码。这种键盘的使用比较方便,不需要编写很多的程序,但使用的硬件电路比较复杂。 非编码键盘是由一些按键排列成的行列式开关矩阵。按键的作用只是简单地实现开关的接通和断开,在相应的程序配合下才能产生按键的键码。非编码键盘硬件电路极为简单,几乎不需要附加什么硬件电路,故能广泛用于各种微处理器所组成的系统中。(1)(1)锁存器锁存器74HC573 74HC573 由于C5402芯片的I/O资源有限,常用锁存器扩展成I/O口来组成非编码键盘。常用的锁存器有74HC573。 真值表: 输入输入输出输出 LE DLE DQ QL H HL H HL H LL H
38、 LL L XL L XH X XH X XH HL LQ0Q0Z Z(2)(2)扩展键盘的组成扩展键盘的组成 通过74HC573锁存器扩展的键盘由行锁存器、列锁存器和35矩阵式键盘组成。该键盘占用两个I/O端口,分别为: 行锁存器为输出口,作为写键盘端口; 列锁存器为输入口,作为读键盘端口。 两端口的地址分别为: 读键盘端口地址:RKEYP=7FFFH; 写键盘端口地址:WKEYP=BFFFH。 图图7.18 VC54027.18 VC5402与与 HC573HC573连接图连接图(3) (3) 工作原理工作原理 按键的识别按键的识别 写端口输出,WKEYP=00000H; 读端口输入,读R
39、KEYP。 判断RKEYP值。 如果RKEYP=111,则无按键按下; 如果RKEYP111,则有按键按下。 行扫描确定按键的位置行扫描确定按键的位置 行扫描:依次给每行线输入0信号,检测所对应的列信号。 从WKEYP口依次输出行代码: 11110X0;11101X1; 11011X2;10111X3; 01111X4。由RKEYP口读入状态 查询读入的数据,确定列代码。 110Y0;101Y1;011Y2。 按键防抖按键防抖 检测到有按键按下后,延迟1020ms,然后再进行行扫描。 确定键值确定键值 键值=行码列码例如:确定X键的键值。X键的行代码X2=11011,列代码Y1=101,X键码
40、=X2Y1=11011101=DDH。TMS320C54X TMS320C54X 键盘键盘I/OI/O扩展驱动程序清单如下:扩展驱动程序清单如下:;KEYSET.ASM ;键盘识别程序 LD #key_w, DP ;确定页指针 LD key_w, A ;取行输出数据 AND #00H, A ;全0送入A STL A, key_w ;送入行输出单元 PORTW key_w, WKEYP ;全0数据行输出 CALL delay ;调用延时程序 PORTR RKEYP, key_w ;输入列数据 CALL delay ;调用延时程序 ANDM #07H, key_r ;屏蔽列数据高位,保留低三位 C
41、MPM key_r, #007h ;列数据与007比较 BC nokey, TC ;若相等,无按键按下,转nokey ;若不相等,有按键按下,继续执行 ;防按键抖动程序 CALL wait10ms ;延时10ms,软件防抖 PORTR RKEYP, key_r ;重新输入列数据 CALL delay ;调延时程序 ANDM #07h, key_r ;保留低三位 CMPM key_r, #07h ;判断该行是否有按键 BC nokey, TC ;没有转移,有继续 ;键扫描程序 Keyscan: LD #X0, A ;扫描第一行,行代码X0送 A STL A, key_w ;X0送行输出单元 PO
42、RTW key_w, WKTYP ;X0行代码输出 CALL delay ;调延时程序 PORTR RKEYP, key_r ;读列代码 CALL delay ;调延时程序 ANDM #07h, key_r ;屏蔽、比较列代码 CMPM key_r, #07h ;判断该行是否有按键 BC keyok, #NTC ;若有按键按下,则转keyok LD #X1, A ;若无按键按下,扫描第二行 STL A, key_w PORTW key_w, WKEYP CALL delay PORTR RKEYP, key_r CALL delay ANDM #07h, key_r ;屏蔽、比较列代码 CMP
43、M key_r, #07h ;判断该行是否有按键 BC keyok, NTC ;若有按键按下,则转keyok LD #X2, A ;若无按键按下,扫描第三行 STL A, key_w PORTW key_w, WKEYP CALL delay PORTR RKEYP, key_r CALL delay ANDM #07h, key_r ;屏蔽、比较列代码 CMPM key_r, #07h ;判断该行是否有按键 BC keyok, NTC ;若有按键按下,则转keyok LD #X3, A ;若无按键按下,扫描第四行 STL A, key_w PORTW key_w, WKEYP CALL de
44、lay PORTR RKEYP, key_r CALL delay ANDM #07h, key_r ;屏蔽、比较列代码 CMPM key_r, #07h ;判断该行是否有按键 BC keyok, NTC ;若有按键按下,则转keyok LD #X4, A ;若无按键按下,扫描第五行 STL A, key_w PORTW key_w, WKEYP CALL delay PORTR RKEYP, key_r CALL delayANDM #07h, key_r ;屏蔽、比较列代码 CMPM key_r, #07h ;判断该行是否有按键 BC keyok, NTC ;若有按键按下,则转keyok
45、nokey: ST #00h, key_v ;若无键按下,存储00标志 B keyend ;返回 keyok: SFTA A, 3 ;行代码左移3位 OR key_r, A ;行代码与列代码组合 AND #0FFh, A ;屏蔽高位,形成键码 STL A, key_v ;保存键码 Keyend: NOP7.4.3 串口通讯电路 RS-232接口芯片是MAX3232,是3.3V供电的芯片,请大家注意使用。DB9接头上的TX_232,RX_232,标识是指PC端的发送和接收,串行通讯垢双方的TX,RX必须反接,所以在原理图电路中PC的TX_232输出的目标板的RXD,目标板的TXD经过MAX232
46、上输出的是PC的RX_232。MAX3232(或MAX232)更详细的资料请参考其数据手册。如图7.19所示。 123456ABCD654321DCBATitleNumberR evisio nSizeBDate:23 -Jan -2 011Sh eet of File:E:softwarep ro tel99 seExamplesMy Design 3.dd bDrawn B y:MAX3 232162738495DB9C 7510 4C 7610 4C 7710 4C 7910 4C 7810 4TXR XC 1+C 1-VCCV+C 2+C 2-V-GNDT1 OUTR 1INT2 OU
47、TR 2INT1 INT2 INR 1OUTR 2OUTVCC12345678910111213141516图图7.19 7.19 串口通信电路串口通信电路 4. 外部中断控制电路 外部中断控制电路如图7.20所示。123456ABCD654321DCBATitleNumberR evisio nSizeBDate:23 -Jan -2 011Sh eet of File:E:softwarep ro tel99 seExamplesMy Design 3.dd bDrawn B y:10 K10 K10 K10 KKEY9VCCINT3INT1INT0NMI图图7.20 7.20 外部中断控
48、制电路外部中断控制电路7.5 A/D7.5 A/D和和D/AD/A接口设计接口设计 在由DSP芯片组成的信号处理系统中,A/D和D/A转换器是非常重要的器件。一个典型的实时信号处理系统如图7.21所示。图图7.21 7.21 由由DSPDSP芯片组成的信号处理系统芯片组成的信号处理系统 由图7.21可以看出,系统首先将模拟输入信号经预处理后变换为数字信号。经数字信号处理之后,再变换为模拟信号输出。这就涉及到模拟信号与数字信号之间相互转换的问题。本节主要介绍常用 A/D、D/A转换器的使用原理以及与DSP芯片的接口。7.5.1 DSP与A/D转换器的接口 A/D 的转换位数由数字信号处理的精度要
49、求决定,同时要考虑到电路在非理想条件下A/D的转换位数有一定损失。A/D的速度必须满足信号处理的要求。对于A/D转换器的选择,要考虑以下因素: 转换精度 转换时间 器件价格 接口方式(串口/并口) 功耗、封装形式等1. TLV15781. TLV1578模数转换器模数转换器 TLV1578是TI公司专门为DSP芯片配套制作的一种8通道10位并行A/D转换器。它将8通道输入多路选择器、高速10位ADC和并行接口组合在一起,构成10位数据采集系统。器件包含两个片内控制寄存器(CR0和CR1),通过双向并行端口可以控制通道选择、软件启动转换和掉电。【例】TLV1578设置方式为:单通道输入、软件启动
50、、采用内部时钟源、时钟设置为20MHz、二进制输出方式。试确定控制寄存器CR0和CR1的配置。解:单通道输入:CR0.D3=0,CR1.D7=0; 软件启动:CR0.D7=1; 内部时钟源:CR0.D5=0; 时钟设置20MHz:CR1.D6=1; 二进制输出:CR1.D3=0。 控制寄存器0: CR0=001000000B=0080H; 控制寄存器1: CR1=010100000B=0140H。 接口连接接口连接 设TLV1578采用内部时钟源,软件启动方式。占用一个I/O口地址,其地址为7FFFH。电路如图7.17所示。 图图7.17 TLV15787.17 TLV1578与与TMS320