admin 管理员组文章数量: 1086019
2024年4月30日发(作者:淘宝购物车怎么设置)
科技信息 计算机与网络
在线系统编程嵌兀式系统设计
江苏联合职业技术学院徐州机电分院 周高伟 卜令武
[摘要]本文首先阐述了在线编程(ISP)概念及其广阔的应用前景。然后讲述了对单片机在线编程的理论基础,以及宏晶公司推出
的STC89C54RD+单片机与通用单片机在硬件结构上的异同。还介绍了STC89C54RD+单片机的ISP功能,其中主要包括字节读,
字节编程和扇区擦除操作。接着又介绍了利用CAN总线控制器SJA1000来实现上位机与下位机之间的CAN总线通信原理。主要
完成CAN初始化程序和CAN收发程序。
[关键词]在线编程STC89C54RD+系列单片机CAN通信
1、前言
所谓“在线编程”(In System Programming,简称ISP)或在系统可编
程,是指电路板I:的空白器件可以编程写入最终用户代码,而不需要从
电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。
采用ISP技术之后,硬件的功能也可变得像软件设计那样灵活而易于
修改,硬件的功能也可以实时地加以更新或按预定的程序改变配置。
无论在单片机E,还是在CP[ D/FPGA上都得到了广泛的应用,ISP技术
是未来发展方向!本设计的内容是上位机(PC机)通过R¥232串口将下
行命令帧发送给CAN232B转换器,CAN232B负责将这些数据格式转
换成CAN的帧格式,然后寻址到SJA1000的发送缓冲区,启动发送命令
后,SJA1000通过它的TX0口发送,TX0口接有CAN收发器82C250,数
据通过CAN收发器发送到下位机(STC89C54RC/RD+系列单片机)。下
位机(sTc89c54Rc/RD+系列单片机)将上位机发送过来的数据通过ISP
控制程序将数据写入用户程序(AP)区。最后完成整个的在线编程过程。
2、嵌入式系统ISP设计原理
对于一般MCU系统,进行ISP设计必须满足以下几个条件l】l:
…1程序空问和数据空间统一编址,程序可以彳F RAM中运行;
f2)Flash芯片正确连接了写信号;
(3)拥有能放下update程序并让其正常工作的额外程厂子/数据空间;
(4)具备某种通信能力(如以太网、串口、CAN、MODREM等)。
满足了这四个条件,就可以按照本文的方法进行ISP设计。设计方
案如下所述:整个程序可以分为两个独立的部分完成,一是控制程序(称
为ISP程序),它通过通信接口从主机接收程序数据到RAM空间,并对数
据进行CRC校验以保证数据的正确性,在校验正确后将数据写到程序
存储器的指定地址空间。如果RAM空间较小,可以接收一页、校验一
页、写入一页,分次完成。由于程序存储器写操作过程必须连续,不能被
打断所以ISP程序必须在链接时指定在RAM地址空间运行。另一部分
是用户的程序(称为AP程序),这是正常编译的在程序存储器空问运行
的程序,除了正常的丁作之外它还需判断(通过通信命令或者查询一个
输入状态等)是否应该转到升级模式,如果是,则将ISP程序复制到指定
的RAM空间并转去执行ISP程序”I。
3、STC89C54 RC/RD+系列单片机编程
3.1 STC89C54 RC/RD+系列单片机简述
STC89系列单片机是MCS一5I系列单片机的派生产品。它们在指
令系统、硬件结构和片内资源上与标准8052单片机完全兼容,DIP40
封装系列与8051为pin—to—pin兼容。STC89系列单片机高速f最高时钟
频率80MHz),低功耗,在系统/在应用可编程(ISP,IA P】,不占用户资源。
STC89C54RC/RD+单片机具有I6K Flash存储器,1280字节RAM和
1 6K E。PROM 。
STC89C54 RC/RD+系列单片机支持lAP功能,该系列单片机内部
都包含两个Flash块,在一块Flash中运行的程序可对另一块Flash进
干『擦除和重新编程。一般都将ISP程序存放在容量较小的一块Flash叶l
fBlock I),而将用户代码存放在容量较大的一块Flash中(BloekO)。Block 1
【1l的ISP程序对BlockO中的用户代码进行擦除和重新编程。
STC89C54内部有20KB(I6KB+4KB)程序存储器,统一编址。BlockO
为O000H~3FFFH;Bh)ck1为F000H~FFFFH。Blockl可以选择映射到
0000H地址开始的1KB/2KB/4KB程序区。
3.2 STC89C54 RC/liD+系列单片机ISP程序编写
ISP主要应用于存线(或远程)升级,通过执行ISP引导码改写用户
程序,无须编程器,无须亲临现场。STC89系列单片机在出厂时,片内已
经烧录有ISP程序,并设置为从ISP引导码启动。启动时,首先执行ISP
引导码,确认是程序下载,还是正常启动。而且STC89C51RC/RD+系列
805 1单片机具有普通单片机所不具备的ISP/IAP特殊功能寄存器:
ISPDATA:
ISP/IAP操作时的数据寄仔器
ISP/IAP从Flash读…的数据放在此处,向Flash写的数据也需放在
此处
ISPADDRH:
ISP/IAP操作时的地址寄存器高八位。
ISPADDRL:
ISP/IAP操作时的地址寄存器低八位。
ISPCMD:
ISP/IAP操作时的命令模式寄存器,需命令触发寄存器触发方可有
效
ISPTRIG:
ISP/IAP操作时的命令触发寄存器。
在ISPN(ISP_contr.7)=l时,对ISP_TRIG先写入46H,再写入B9H,
ISP/IAP命令才会生效。
IsP_CONTR:ISP/IAP控制寄俘器。
B7 B6 B5 B4 B3 J B2 Bl B0 Resef Value
ISPBN SWBS SWRST CMD FALL 1 I WT2 WT1 WTO 0000.1OOO
ISPEN:ISP/IAP功能允许位。0禁止ISP/1AP编程改变Flash,1允许
程序改变Flash
SWBS:软件选择从用户主程序区启动(0),还是从ISP程序启动
(1)
SWRST:0:不操作,1:产生软件系统复位,硬件自动清零
CMD
FALL: ̄N果送入了ISP/IAP命令,并对lsI)_TRIG送人46H/B9H
触发失败,则为1,需由软件清零。
STC89C54单片机在烧录时,将ISP程序写到Block1。单片机上电复
位时,缺省的Block1映射到O000H地址开始的8KB程序区,进入ISP程
序执行。需要切换到用户代码(BlockO)运行时,ISP修改IsP_CONTRf 控
制位SWBS,产生一个软复位(Software Reset)。若SWBS=0,程序软复位后,
Blockl将不再映射到0000H地址映,则开始运行BlockO中的用户代码
程序。若SWBS=I用户程序区(AP区)软件复位并切换到ISP程序区开
始执行程序。
4、CAN通信模块
4.1 CAN控制器
CAN,全称为“ControllerAreaNetwork”,即控制器局域网,是国际上
应用最广泛的现场总线之一。由于CAN总线本身的特点,其应用范
由最初的汽车行业,向过程T业、机械工业、纺织机械、农用机械、机器
人、数控机床、医疗器械及传感器等领域发展。CAN是一种多主方式的
串行通讯总线,一个由CAN总线构成的单一网络中,理论上可以挂接
无数个节点。实际应用中,节点数目受网络硬件的电气特性所限制。例
如,当使用Philips P82C250作为CAN收发器时,同一网络中允许挂接
110个节点。CAN可提供高达1Mbit/s的数据传输速率,这使实时控制
变得非常容易。另外,硬件的错误检定特性也增强了CAN的抗电磁干
扰能力。基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够
检测出产生的任何错误。当信号传输距离达到】0Kin时,CAN仍可提供
高达50Kbit/s的数据传输速率。由于CAN总线具有很高的实时陛能,凶
此,CAN已经在汽车T业、航空工业、工业控制、安全防护等领域中得到
了广泛应用,CAN控制器已被公认为几种最有前途的现场总线。
4.2 CAN控制器的初始化
以下简要介绍一下SJAl000初始化步骤:
(1)初始化模式寄存器,设置SJA1000进入复位模式,选择单过滤
模式
(2)初始化时钟分频寄存器,设置Pelican模式和关闭SJA1000芯
片的时钟输出引脚clkout(不产生时钟输出)
(3)初始化中断时能寄存器,开放发送中断与接收中断使能
(4)初始化验收代码寄存器,设置扩展帧(对应Pelican模式)对应
的29位标识码占用4个字节验收代码寄存器的内容
(5)初始化验收屏蔽寄存器,确定单过滤模式 (下转第265页)
,.——
263---——
科技信息 计算机与网络
机,备用网关走SDH平面ET1在核心机房B落地汇聚到交换机。核心
机房B交换机上行通过市内汇聚环到核心机房A交换汇聚,统一接人
T2000网管。此种配置不但可以通过两个平面相互保护主备网关数据
路由,提高网络安全性,而且可以节省传输资源。
ECC子网规模控制:将每个郊县的网络ECC子网进行划分,对于每
个郊县的网络增加网关网元即可,但是部分郊县网络较大,需要细化
ECC子网,对于每个郊县按接入环的数量增加网关网元数量,使ECC子
网规模控制在业界建议的64个网元以内,并可根据网络的发展适时的
调整ECC子网。
2、ECC优化具体实施
全网ECC优化规划完毕后需要具体进行优化实施,实施过程相对
比较简单。对于每个县局规划成的ECC子网,在汇聚节点通过设置
DCC透传来形成一个ECC子网,这种方式可以进行每个子网的DCC
隔离,从而完成ECC子网的划分。每个ECC子网的主备网关通过IP数
据路由分别在汇聚节点机房通过交换转发到两个传输平面进行传输,
这样可以有效地提高网络安全性。几个子网在汇聚节点通过设置DCC
透传来实现ECC子网划分隔离。
3、ECC优化后网络应急措施
(1)对于市局核心汇聚节点故障情况应急措施
市公司的交换机到设备机房之间布放一到两条闲置的较长网线,
由于每个环网都有省公司的网元,而且不止一个,所以当我们前面所做
的所有保护措施都失效的时候,可以临时选取一个网元插上网线作为
临时网关,紧急恢复监控。时间预期为,人员到达机房并找到网元插上
网线,1O—l5分钟,同时网管进行非网关网元到网关的转换,与人员到
机房硬件操作同时进行,也为10-15分钟,即在10一l5分钟内紧急恢复
监控。
对于每个郊县按接入环的数量划分为2个到3个子网,每个子网
配置2个网关网元,互为主备用网关。对于郊县接人环可以把两个接人
环划分为一个子网,每个接人环配置一个网关,两个网关互为主备。该
县所有接入环的主用网关的数据路由在所带汇聚设备(NG—SDH设备或
2500+设备)的数据单板一个数据口汇聚落地到交换机,备用网关通过
所带汇聚设备(NG—SDH设备或2500-4-设备)的数据单板另一个数据口
汇聚落地到交换机。同时汇聚设备本身监控网关的数据路由也通过该
交换机转发。交换机完成把所备用网关和主用网关的数据分成两个口
上行,以主用网关走OSN平面EFS数据路由在核心机房A落地到交换
(2)对于县区备网关主控均故障,该子网无法监控应急措施
由于汇聚节点均为核心设备,该数据路由相对比较稳定,同时由于
两个平面进行相互保护,所以核心节点监控不存在问题,在该核心节点
所带的子网主备网关出现故障时,可以在网管上直接删除该ECC子网
的穿通DCC字节后,可以立即恢复,恢复时间在1分钟左右。
参考文献
[1]华为技术有限公司.<<OptiX扩展ECC组网应用与配置指导书》
[2]华为技术有限公司.<<OptiXECC巨网分割(优化)专题》
[3]华为技术有限公司.((OptiX DCC新特性(扩展和透传)专题》
(上接第263页) (29位标识码)32位验收屏蔽寄存器内容,确定对
应32位验收代码寄存器哪些位需要屏蔽,屏蔽位对应…1’,不屏蔽位对
应…0’。所设屏蔽位是指验收屏蔽寄存器对应“1”屏蔽掉接收的标识码
对应位与验收代码寄存器对应位的比较操作,直接验收通过为合法的
接受位,而不论接受该位标识码位是否与验收代码寄存器的对应位完
全一致。
(6)初始化总线定时器0和总线定时器1,设置波特率
(7)初始化输出控制寄存器,决定SJA1000的TX0,TX1驱动输出
模式
(8)再初始化模式寄存器,返回工作模式
4.3 CAN通信的模块
(1)CAN通信的硬件连接
BUFF(8字节)分别存放Rx标识码l、RX标识码2、RX标识码
3、RX帧信息、CAN接收缓存器的数据区。我们假定当CID2为88H时,
单片机进入ISP程序区,并执行ISP程序,将RECE—BUFF中的数据写
进单片机的AP区。CAN控制器每接收一次报文均作以上操作。当报文
发送完毕时(CID2内的数据不再为88H),则执行
RECE
—
MOV ISPCONTR,#001000000H
_
从ISP程序区软件复位并切换到用户应用程序区(AP区)开始执
行程序,以上为CAN控制器软件设计的大体思路。
5、总结
图1本设计硬件连接
如图l所示,上位机(PC机)通过RS232串口将下行命令帧发送经
过CAN232B转换器,CAN232B负责将这些数据格式转换成CAN的帧
格式,然后寻址到SJAIO00的发送缓冲区,启动发送命令后,SJA1000通
过它的TX0口发送,TX0口接有CAN收发器82C250,数据通过CAN
收发器发送到下位机(STC89C54RC/RD+系列单片机)。
整个设计完成了ISP监控程序和CAN通信模块,为在线编程在工
业上或其他的应用领域提供了参考。上位机(PC机)通过RS232串口将
下行命令帧发送通过CAN232B转换器,CAN232B负责将这些数据格
式转换成CAN的帧格式,然后寻址到SJA1000的发送缓冲区,启动发送
命令后,SJA1000通过它的TX0口发送,TX0口接有CAN收发器
82C250,数据通过CAN收发器发送到下位机(STC89C54RC/RD+系列
单片机)。下位机(STC89C54RC/RD+系列单片机)将上位机发送过来的
数据保存在片内RAM里,然后再通过ISP控制程序将RAM里的数据
写入用户程序(AP)区。最后完成整个的在线编程过程。
参考文献
[1]邵贝贝单片机嵌入式应用的在线开发方法[M].北京:清华大
学出版社,2004.10:5—16
[2]饶运涛,邹继军,郑勇芸.现场总线CAN原理与应用技术[M]
北京:北京航空航天大学出版社,2003 6:20—80
[3]深圳市宏晶科技有限公司STC单片机EM]wwwMCU—Mem—
(2)CAN通信模块的软件设计
CAN的报文结构应包括描述符区和数据区,描述符区的结构如图
2所示。
竺篁皇l堡 ll !l堡 !l 里!l
orycon1.下栽STC89C51RC/RD+系列单片机中文指南,STC单片机在
系统可编程软件:40—90
图2描述符区结构
我们将单片机RAM定义几个特殊的空间:ADR、CID1、CID2、DLC、
版权声明:本文标题:在线系统编程嵌入式系统设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1714466135a681392.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论