在遥控编程系统中应用微控制器实现嵌入式ISP的软硬件设计

发布者:京玩儿最新更新时间:2018-02-13 来源: eefocus关键字:遥控编程系统  微控制器  ISP 手机看文章 扫描二维码
随时随地手机看文章

   测温结果数据比较

    1 XC9500系列CPLD器件及其ISP性能

    XC9500系列CPLD器件是由多个功能块(FB)和IO块(IOB)组成,可用开关矩阵Fast CONNECT完全互连的子系统,IOB提供输入和输出的缓冲,每个FB提供具有36个输入和18个输出的可编程逻辑容量。Fast CONNECT开关矩阵连接所有的FB的输出和FB的输入,对于每个FB,12至18个(取决于封装的引脚数)输出和有关的输出使能信号直接驱动IOB。

    所有XC9500系列CPLD器件都是系统内编程的,最小达一万次编程/擦除次数,支持扩充的IEEE 1149.1边界扫描标准,XC9500的结构特性着重满足系统内编程的要求,增强的引脚锁定能力可以避免重做昂贵的印制板,扩充的JTAG指令集允许编程模式和系统内诊断的各种控制。由于JTAG在其权限内把ISP的性能扩充到1149.1的测试标准中,XC9500系列CPLD器件可以通过JTAG接口实现ISP性能。XC9500系列的系统内编程性能,不仅为现场编程和调试提供了方便,允许用户编程和再编程已经安装在系统印制板上的XC9500系列器件来改进样机、更新制造流程;而且正是由于系统内编程性能使得摇控编程成为可能。下面对XC9500系列CPLD器件摇控编程的实现方法做一介绍。

    2 XC9500系列CPLD器件遥控编程的实现方法

    对CPLD器件的编程,传统的方法都是现场工程师通过PC机来实现的,PC机上必须有EZTag或者JTAG编程器软件,并且PC机必须通过Xchecker或JTAG电缆和目标板相连,然后将JEDEC编程数据下载到目标板的CPLD器件中去。这种传统的编程方法要求工程师必须亲临现场,这就带来一个问题,那就是当产品销售以后,如果要对它升级(主要是指升级CPLD器件的功能)就十分麻烦。本文所要介绍的遥控编程不同于传统的编程方法,它不需要工程师亲临现场,只需在系统设计时将编程控制电路加入到嵌入式系统中去即可实现。

    遥控编程的方框图如图1所示。要实现遥控编程,关键在于通信和嵌入式下载技术。通信部分包括通信接口和通信信道,它完成远程数据传输,即将本地PC机生成的CPLD器件编程数据传输到远程的目标系统的嵌入式下载模块(即图中所示的“微控制器及嵌入式编程控制”部分);嵌入式下载技术是指用微控制器通过JTAG接口实现对XC9500系列CPLD器件编程。通信可采用现有的各种通信技术,例如通过电话线用调制解调器实现通信以及通过电缆、激光和无线电等实现通信,在本文对通信的实现不做过多的介绍,下面只以简单的红外收发器为例加以说明,重点介绍微控制器及嵌入式编程控制的软硬件实现。遥控编程的方框图

    3 微控制器及嵌入式编程控制的实现

    3.1 硬件设计

    微控制器及嵌入式编程控制硬件电路如图2所示,由微控制器lntel 8031、时钟、地址锁存器74ls373、程序存储器27512、数据存储器RAM(包括XSVF格式数据存储器)、XC95108及数据输入接口等几部分组成。图中8031不仅可用来对CPLD进行编程控制,而且还可实现其它控制和处理,因为设计中使用了一片XSVF(Xilinx Serial Vector Format格式数据存储器,在XC95108的控制下可以在后台实现数据通信,并将XSVF格式数据存储到XSVM RAM中,当数据接收完毕时再中断微控制器,在微控制器的中断服务子程序中通过JTAG接口实现对目标CPLD器件编程。从图中可见,除了XC95108、数据输入和XSVF RAM部分外,其它部分和常见的8031应用系统一样,这里不再赘述,下面主要讲述数据输入和XC95108的内部功能。

微控制器及嵌入式编程控制硬件电路

    数据输入由红外收发器实现(如可用Siemens公司的IRM3105),它所接收到的数据是由PC机生成的按RS232格式打包的XSVF格式编程数据文件,收发器通过UART(Universal Asynchronous Receiver Transmitter) 接口和XC95108相连。

    XC95108包含URAT接收器、时序控制状态机及总线控制器等。URAT接收器对接收到的数据进行校验,并且去掉起始位和结束位,如果接收正确则通知时序控制状态机数据接收就绪,如果接收不正确则给出错误指示。


    时序控制状态机是遥控编程的核心,包括四种状态,即HIGH、LOW、DOWNLOAD和ISP。XSVF文件的第一、二个字节为传输的字节总数,在状态HIGH和LOW时字节总数的高低字节被保存到一个变量中,当在DOWNLOAD状态时,每当往XSVF RAM写入一个字节,该变量的值减1,同时XSVF RAM的地址增1。一旦全部XSVF文件都写入XSVF RAM中,状态机便进入ISP状态,此时中断微控制器,微控制器响应中断并进入中断服务子程序。中断服务子程序根据XSVF RAM中的信息通过JTAG对XC9500 CPLD器件进行编程。

    总线控制器根据时序控制状态机控制XSVF格式数据存储器的数据总线的切换,当在DOWNLOAD状态时,总线控制权交由XC95108;当在ISP状态时,总线控制权交由8031;当在HIGH和LOW状态时,总线为高阻状态。

    3.2 XSVF文件的生成

    上面提到过远程端接收到的数据为XSVF文件,XSVF文件是由本地PC机生成的,它是如何生成的呢?首先将设计数据输入,开发系统进行设计转换生成JEDEC器件编程文件;然后,由Xilinx公司提供的软件EZTagTM自动读取JEDEC文件并转换成SVF文件,SVF格式是专门用来描述IEEE 1149.1(JTAG)总线操作的格式,SVF文件中不仅包含CPLD的编程数据,也包含有编程命令,但由于SVF格式为ASXII码,因要求较大内存,不适合嵌入式应用;最后,由软件svf2xsvf将SVF格式转换成XSVF格式,XSVF格式为压缩的二进制格式,占用存储空间小,因而更适合嵌入式应用。

    3.3 嵌入式ISP编程流程

    XC9500通过四线测试存取端口TAP(Yest ACCess Port 和TAP控制器来执行系统内编程和IEEE 1149.1边界扫描测试(JTAG)。TAP包括TCK、TMS、TDI和TDO四个引脚,TAP控制器是16状态的状态机,控制边界扫描电路按照TMS运行,执行由IEEE规定的状态图(详细内容参见参考文献1,下面所提到的状态,如Shift-1R、Shift-DR等包含在16个状态之中)。微控制器根据XSVF文件提供的指令和数据激励TAP端口,在TAP控制器的控制下实现XC9500 CPLD的ISP编程。流程图如图3所示。

流程图

     

    XSVF格式的编程文件包含编程指令和数据,编程指令主要有三条,即XRUNTEST、XSIR和XSDR。微控制器读取指令后进行解释,并根据指令执行相应的操作。

    XRUNTEST指令指定在执行下一条XSIR和XSDR指令之前在Run-Test/ldle状态停留的时间,指令之后紧接的4个字节为时间数值(毫秒数);当微控制器读取的指令为XSIR时,便为TMS和TCK提供激励直至进入Shift-IR状态,然后读取指定的数据长度值和数据,并将数据送到TDI口;微控制器读取XSDR指令时,首先读取将要在Shift-IR状态输出的数据,再触发TMS和TCK直接进入Shift-IR状态,并保持TMS为低,停留在Shift-IR状态,将XSVF文件数据输出到TDI口,并存储从TDO口接收到的数据,在所有数据都输出到TDI口之后,TMS变高进入Exit-1-DR状态,然后将从TD0输入的值和TDO预期值相比较,如果不匹配则转出错处理,如匹配则重新进入Run-Test/ldle状态。微控制器循环地从XSVF RAM中读取指令和数据并执行,直到编程结束。


关键字:遥控编程系统  微控制器  ISP 引用地址:在遥控编程系统中应用微控制器实现嵌入式ISP的软硬件设计

上一篇:在磁盘操作系统实模式下直接存取4GB内存分析
下一篇:基于嵌入式USB主机和ZigBee无线通信技术的音响系统解决方案

推荐阅读最新更新时间:2024-03-16 15:55

51单片机常用器件的驱动电路
1. IO介绍 51单片机 总的管脚有40个,但是其中能够作为IO使用的只有32个,每8个分为一组,共4组。 单片机 要想实现预定功能必然要使用到各种IO口,来完成各项功能,包括点亮LED,连接按键、键盘,各种 I2C 、SPI设备等。51单片机,4组IO的结构略有不同,使用时应当注意。 P0属于双向IO,内部没有上拉电阻,作为输出时,最好外加上拉电阻。 P1、P2、P3属于准双向IO。“准”体现在输入时,必须先输出“1”,才能正确读到IO的输入情况。 P3口的各个IO均有复用功能: 2. IO 编程 对于IO的操作无非是读输入和写输出,通过读写相应的 寄存器 (P0、P1、P2、P3)就可以实现。 2
[单片机]
51<font color='red'>单片机</font>常用器件的驱动电路
基于51单片机理解SG90舵机原理并用按键控制
具体功能实现 当按下开关时,舵机的角度分别运行到0°,45°,90°,135°,180°,0°(最后停止位置),其中每转动一个角度时间延时1s。 器件: AT89C52,sg90舵机,三根杜邦线公对母,两支按键 转动角度展示图: 转动至45° 转动至180° 转动至90° 知识介绍: sg90舵机简介 由直流电机、减速齿轮组、传感器(可变电阻)和控制电路组成的一套自动控制系统。 直流电机是一圈圈转动的,舵机只能在一定角度内转动(有最大旋转角度比如:180度),不能一圈圈转。 外部中断: STC89C52有4个外部中断; STC89C52的外部中断有两种触发方式: 下降沿触发和低电平触发 下降沿触发:当按键按
[单片机]
基于MCU与USB设备控制器IP核的设计方案
1 引言 在传统的计算机系统上常采用串口(如RS232)和并口连接外围设备,但串口和并口都存在着通信速度 慢,接口独占不利于扩展等无法克服的缺点,而通用串行总线(Universal Serial Bus,即USB)因具有传输 速度快、支持热插拔、扩展方便、抗干扰强、成本低、数据传输质量高、节省系统资源等优点而得到了广 泛的应用,当前它已成为计算机最常用的接口之一。 现在USB控制器主要有两种:带USB接口的单片机(MCU) 和纯粹的USB接口芯片。纯粹的USB接口芯片仅处 理USB通信,必须有个外部微处理器来进行协议处理和数据交换。典型产品有Philips公司的PDIUSBD11(I2C 接口)、PDIUSBD12(并行接口);N
[电源管理]
基于<font color='red'>MCU</font>与USB设备控制器IP核的设计方案
单片机计时器100000秒以内
硬件连接: 代码: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar Count; sbit Dot = P0^7; uchar code DSY_CODE = { 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }; uchar Digits_of_6DSY ={0,0,0,0,0,0}; void DelayMS(uint x) { uchar i; while(--x) { fo
[单片机]
<font color='red'>单片机</font>计时器100000秒以内
MSP430单片机实践篇---内部FALSH的操作
//****************************************************************************** // 测试MSP430单片机向FLASH中写入操作 // // 描述; 每次掉电或复位后都能看到数码管上显示的数值增1,说明对flash的写入与读取成功 // // 注意:修改flash中的内容必须首先执行擦除操作, // 因为对FLASH的操作只能将1写成0,而不能将0写成1只有擦除才能将0写回1 // 擦除操作至少将擦除1个段 // // 如果使用其它型号的单片机,只需将头文件改为相应的 msp430xx.h ; // 并在Option的Target中的device改
[单片机]
用51单片机实现串口-以太网转换器
单片机或微控制器(MCU)(也称为嵌入式系统)已经在各个领域得到了广泛的应用。目前绝大多数系统都是以MCU为核心,与一些监测、伺服、指示设备配合实现一定的功能。以太网是当今最受欢迎的局域网之一,现已成为社会重要的基础信息设施之一, 是信息流通的重要渠道,如果嵌入式系统能够连接到Internet上面,则可以方便、低廉地将信息传送到几乎世界上的任何一个地方。 将嵌入式系统与Internet相连的主要困难在于:Internet上面的各种通信协议对于存储器、运算速度等的要求比较高,而嵌入式系统中除部分32位处理器以外,大量存在的是8位和16位MCU,支持TCP/IP等Internet协议将占用大量系统资源,从而影响本来的功能或根本
[单片机]
用51<font color='red'>单片机</font>实现串口-以太网转换器
proteus仿真51单片机篮球计分器
#include reg52.h 源码下载 #include intrins.h #define uchar unsigned char #define uint unsigned int uchar secs = 0; uchar minutes = 1; uchar LED,num1,num2,num = 4; uchar flag1 = 1,flag2 = 0; uchar m_secs = 24; uchar key_value = 0; uchar table = {1,2,3,4,5,6,7,8,9,0,1,2,3}; uchar code LedNum = {0x3f,0x06,0x5b,0x4f,0x
[单片机]
proteus仿真51<font color='red'>单片机</font>篮球计分器
51单片机的输入/输出口(IO口)
MCS-51单片机有4个双向的8位I/O口的P0~P3口为三态双向口 P1,P2,P3口为准双向口(用作输入时,口线被拉成高电平,所以称为准双向口)。 P0口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。 P0口还可以用来输出外部存储器的第8位地址。 由于是分时输出,故应在外部加锁存器将此地址数据锁存,地址锁存信号用ALE。 P1口是专门供用户使用的I/O口,用户可以利用它作为I/O口线使用。P1口是准双向口。每一位均由锁存器(SFR)、输出驱动器和输入缓冲器组成。 它们的上拉电阻实际上不是线性电阻,而是由场效应管构成 ,每位锁存器均由D触发器组成。 每个I/O口都有两种读入方法:读锁存
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved