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、 


本文标签: 数据 寄存器 程序 单片机 网关