CN101446937B - Mon08接口批量数据传输方法 - Google Patents

Mon08接口批量数据传输方法 Download PDF

Info

Publication number
CN101446937B
CN101446937B CN200810243785XA CN200810243785A CN101446937B CN 101446937 B CN101446937 B CN 101446937B CN 200810243785X A CN200810243785X A CN 200810243785XA CN 200810243785 A CN200810243785 A CN 200810243785A CN 101446937 B CN101446937 B CN 101446937B
Authority
CN
China
Prior art keywords
data transmission
mon08
data
interface
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200810243785XA
Other languages
English (en)
Other versions
CN101446937A (zh
Inventor
刘晓升
王宜怀
朱巧明
龚声蓉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou University
Original Assignee
Suzhou University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou University filed Critical Suzhou University
Priority to CN200810243785XA priority Critical patent/CN101446937B/zh
Publication of CN101446937A publication Critical patent/CN101446937A/zh
Application granted granted Critical
Publication of CN101446937B publication Critical patent/CN101446937B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Communication Control (AREA)

Abstract

本发明公开了一种MON08接口批量数据传输方法,其特征在于,包括下列步骤:(1)编写串行通信程序,编译成目标代码,所述串行通信程序中,在数据传输时,对每64~512字节数据进行一次校验;(2)采用基本的MON08接口通信方法将步骤(1)的目标代码发送至目标MCU的内存中并执行;(3)由编写的串行通信程序将所需传输的数据传输至目标MCU,实现MON08接口的批量数据传输。本发明通过改进MON08接口的通信流程及通信方式,大大加快了大批量数据传输的通信速度,同时保证了数据传输的可靠性。

Description

MON08接口批量数据传输方法
技术领域
本发明涉及HC08系列微控制器的编程调试接口批量数据传输方法,具体涉及一种用于MON08接口的数据通信,实现高速批量数据传输。
背景技术
HC08系列MCU有近百种型号,具有稳定性好、功耗低、带有Flash存储器等特点,在嵌入式系统中被广泛选用。MON08接口是Freescale HC08系列微控制器(MicroController Unit,MCU)的编程调试接口,在嵌入式产品的研发及生产阶段,大批量数据都要通过编程接口下载到MCU的存储器中,而MCU的下载及调试过程中,绝大部分时间都消耗在数据传输上,擦写Flash的时间很短。因此,提高编程接口的数据传输速率,可以有效地提高嵌入式产品的研发和生产效率。
HC08系列MCU可以工作在两种模式:用户模式和监控模式。用户模式是MCU上电复位后,转向复位矢量所指向的地址,执行Flash中的用户程序。监控模式是MCU在上电复位后,执行监控ROM中的程序(MCU出厂时,固化在芯片中的程序)。监控模式下MCU和外界通过MON08接口进行交互,标准的MON08接口如图1所示。MCU进入监控模式需要一些外界条件,例如:IRQ引脚加高电压(1.5倍VDD)、某些I/O口的特定电平。
在监控模式下,微控制器内部的监控ROM程序开始工作,并通过I/O口实现单线半双工串行通信,为连接的主机提供服务,这里的主机可能是PC机,也可能是另一个MCU。监控模式下MCU以标准不归零(NRZ)的数据格式进行异步串行通信,每传输1字节需要1位开始位、8位数据位和1位停止位,共计10位,数据传输速率为9600bps(HC08中的GZ60系列是7200bps)。
MON08接口的基本功能是将用户程序写入到MCU的Flash存储器中,Flash的擦写是需要一定的时序来完成的,直接的MON08接口通信是不能实现的。监控ROM程序提供了6条指令,实现对MCU内存地址的读、连续读、写、连续写、读堆栈指针、运行内存中的程序(执行RTI命令)。有了这6条指令,主机首先把Flash擦写程序的目标代码发送到目标MCU内存中,再发送一批用户程序目标代码到目标MCU内存中,执行写Flash程序,将该批数据写入,然后再发送下一批程序代码、写入,直到所有程序数据写入完毕。这里将用户程序代码分批的原因在于:①对Flash的写入是按页的方式来进行的,不同的MCU其页大小也不相同,GP32的Flash页大小为128字节;②HC08系列MCU内存较小,通常在128B~2KB,一次缓存的数据不可能太多。
这些监控指令的执行也需要遵从严格的时序要求,主机每发送一字节,目标MCU都会将该字节返回给主机,供主机校验。图2给出了向特定内存单元写数据的时序图,向目标MCU指定内存写一字节数据需要先发送写命令(命令代码是0x49),再发送内存地址高字节和低字节,然后发送数据,每一字节都需要等待对方的回应,最后还需要等待12位的延时,才可以发送下一个命令。因此,向目标MCU内存写1字节数据需要时间为:
1+10+2+10+1+10+2+10+1+10+2+10+1+10+2+10+1+11+1=105位时间
在批量数据传输时,写第一字节需要地址信息,后续字节使用连续写命令(0x19),省略地址信息,发送1字节时间为:105-46=59位
则发送32KB的数据所需要理论时间为:
32×1024×59÷9600=201.4秒
用基本的MON08接口通信传输32KB数据最少需要3分半钟,而程序下载时还需要擦除、写入、写入校验等时间,对于开发者或生产者来说,这是一个漫长的时间。
因此,基本MON08接口通信的数据传输率很低,不适合于批量数据传输。
发明内容
本发明目的是提供一种MON08接口批量数据传输方法,通过方法的改进,提高MON08接口通信的数据传输率,以加快开发和生产速度。
为达到上述发明目的,本发明采用的技术方案是:一种MON08接口批量数据传输方法,包括下列步骤:
(1)编写串行通信程序,编译成目标代码,所述串行通信程序中,在数据传输时,对每64~256字节数据进行一次校验;
(2)采用基本的MON08接口通信方法将步骤(1)的目标代码发送至目标MCU的内存中并执行;
(3)由编写的串行通信程序将所需传输的数据传输至目标MCU,实现MON08接口的批量数据传输。
上述技术方案中,所述步骤(1)中的串行通信程序既可以采用异步通信方式进行数据传输,也可以采用同步通信方式进行数据传输。为了加快传输速度,优选采用同步通信方式进行数据传输。
其中,所述同步通信方式是,主机方发送数据时,先发送4个周期的“低电平”同步信息,然后发送数据位,并将数据位信息持续10个周期;接收方在接收到同步信息后,延时8个周期后接收信息位;主机方在接收数据时,先发送4个周期的同步信息,然后将I/O口置为输入状态,延时6个周期后接收信息位;接收方在接收到同步信息后,把需要发送的信息位发送到线上。
将基本的MON08通信方法称为第一种方法,将本发明中采用异步通信方式进行数据传输的方法称为第二种方法,将本发明中采用同步通信方式进行数据传输的方法称为第三种方法,下面从传输速度、可靠性等方面对这三种通信进行比较。
1)传输速度
基本的MON08通信方法速度最慢,第二种方法较快,第三种方法最快。第一种方法完全使用基本的MON08接口通信,每个字节均需校验,传输延时较多,且通信速率限制在9600bps。第二种方法由于双方的通信程序都是自己编写,灵活性较大,可以采用9600bps、19200bps,甚至于38400bps的传输速率,校验方法由用户自定义。第三种方法由于采用同步通信方式,速度最快。
2)可靠性
从理论上来讲,第一种通信方法由于对每个字节都进行校验,最可靠。但通过大量的实验验证,后两种采用批量数据校验的方法也是可靠的,数据传输出错的情况约为5‰,并且这种错误也能校验出来。
3)传输距离
第一、二种方法采用异步通信,通信距离可以达到几米。第三种方法使用同步方法,当传输距离长时,线路对信号干扰比较明显,通信质量下降,通过实验验证,传输距离在30厘米范围内,这种通信方法的稳定性很好,但由于开发和生产过程中,接口距离通常很近,因此对本发明的实施并无影响。
可见,由于上述技术方案的采用,本发明与现有技术相比具有下列有益效果:
(1)本发明通过改进MON08接口的通信流程及通信方式,大大加快了大批量数据传输的通信速度,采用现有技术,32KB程序下载用时大约是5分钟而采用本发明的技术方案,下载32KB程序仅需大约10秒钟时间。
(2)本发明在大大提高传输速度的同时,保证了数据传输的可靠性,并且,可以根据传输距离的不同,选择同步或异步方式进行通信,适用范围广。
(3)本发明创造性地通过将100字节左右的通信程序下载到目标MCU上运行,此后由该程序控制通信,来实现传输速度的极大提高,从而不需要对HC08的硬件作任何改动,实现方便。
附图说明
图1是标准的MON08接口的示意图;
图2是现有技术中向特定内存单元写数据的时序图;
图3是实施例一中主机方MON08接口通信流程图;
图4是实施例二中主机向目标MCU发送1位信号的时序图;
图5是实施例二中主机接收目标MCU发送的1位信号的时序图。
具体实施方式
下面结合附图及实施例对本发明作进一步描述:
实施例一:一种MON08接口批量数据传输方法,包括下列步骤:
(1)编写串行通信程序,编译成目标代码,所述串行通信程序中,在数据传输时,对每64~256字节数据进行一次校验;
(2)采用基本的MON08接口通信方法将步骤(1)的目标代码发送至目标MCU的内存中并执行;
(3)由编写的串行通信程序将所需传输的数据传输至目标MCU,实现MON08接口的批量数据传输。
为了提高数据通信速度,在批量数据传输时,可以对每一批数据进行校验,而不是对每个字节进行验证。这时就不能完全依靠监控ROM中的程序,而需要编写自己的串行通信程序,编译成目标代码,在基本MON08接口通信的支持下,把这些代码发送到目标MCU内存中并执行,后续的数据在自己编写的串行通信程序的支持下进行通信。依据这种思想,主机方MON08接口通信流程如图3所示。
使用自己编写的串行通信程序(该程序编译后的目标代码100字节),传输32KB数据的理论时间为:
(100×59+32×1024×8)÷9600≈28秒
在编写用于串行通信及校验的程序时,技术要点如下:
1)用I/O口模拟串行通信,通信双方采用相同的通信速率。如果双方的总线频率不相同时,需要精确计算延时的周期数,避免数据传输的错位现象。为了实现精确延时,编程时应该是选用汇编语言。JB8芯片的总线频率是3MHz,GP32进入监控模式后的总线频率是2.4576MHz,采用9600bps速率通信时,JB8和GP32发送1位所需要的周期数分别为313个和256个。
1 9600 ÷ 1 3 × 10 6 = 30000 96 ≈ 313 1 9600 ÷ 1 2.4576 × 10 6 = 24576 96 = 256
2)编译后的目标代码尽可能少。HC08系列MCU是针对低端的应用,内存资源相对较少,通常为几百个字节。在监控模式下进行程序下载,需要放置擦写Flash的程序、串行通信及校验程序、写入Flash页数据以及程序运行的变量堆栈数据,所以串行通信及校验程序需要节省代码量,尽可能选用操作码短的汇编指令。
3)有选择性地使用跳转指令。串行通信及校验程序最终要搬到内存执行,程序运行空间和编译时指定的存储空间可能有所差异,因此程序中使用相对跳转指令BSR和BRA,避免绝对跳转指令JSR和JMP。
4)批数据校验采用“累加和”或“异或”的方式。不带进位的加法指令“ADD  ,X”和异或指令“EOR  ,X”仅需要2个总线周期,执行速度非常快。
实施例二:一种MON08接口批量数据传输方法,包括下列步骤:
(1)编写串行通信程序,编译成目标代码,所述串行通信程序中,在数据传输时,对每64~512字节数据进行一次校验;
(2)采用基本的MON08接口通信方法将步骤(1)的目标代码发送至目标MCU的内存中并执行;
(3)由编写的串行通信程序将所需传输的数据传输至目标MCU,实现MON08接口的批量数据传输。
实施例一中采用的是异步通信方式,更适用于距离较远的场合,而使用MON08接口通信时距离往往较短,可以采用同步方式。因此,本实施例中采用同步通信方式。
主机方发送数据时,先发送4个周期的“低电平”同步信息,然后发送数据位,并将数据位信息持续10个周期;接收方在接收到同步信息后,延时8个周期后接收信息位,如图4所示。
主机方在接收数据时,也先发送4个周期的同步信息,然后将I/O口置为输入状态,延时6个周期后接收信息位;接收方在接收到同步信息后,把需要发送的信息位发送到线上,如图5所示。
这种串行数据通信使用自定义的串行通信协议,所有的通信都是由主机发起和控制,在传送每一位数据时,都是由一个高到低的电平跳变信号来同步。其传送1位信息大约在15个总线周期,则传送1字节用时15×8=120个总线周期,再加上传输8位所用的循环控制100个总线周期,则传送1字节只需要220个总线周期。用这种同步方式进行数据传输速率要远远高于异步串行数据传输,此时传输32KB字节理论上所用的时间为:
100×59÷9600+(32×1024×220)÷(2.4576×106)≈4秒
说明:用这种方式进行数据通信也依赖于MON08的基本串行通信,其编译后的目标代码大约在100字节,所以在上述时间计算的前一部分是用于传输这些代码的时间。
从上面的计算可以看出,变“异步”为“同步”的MON08接口通信在数据传输上有了质的飞跃。在实际实现时,这种通信方式对信号质量要求较高,避免毛刺信号的干扰,电路设计时要使用滤波电路,布线要合理。编程时,通信双方密切配合,严格遵从时序要求,同时要反复测试确保数据稳定性。

Claims (3)

1.一种MON08接口批量数据传输方法,其特征在于,包括下列步骤:
(1)编写串行通信程序,编译成目标代码,所述串行通信程序中,在数据传输时,对每64~512字节数据进行一次校验;
(2)将步骤(1)的目标代码发送至目标微控制器的内存中并执行,发送的方法是:向目标微控制器指定内存写一字节数据需要先发送写命令,再发送内存地址高字节和低字节,然后发送数据,每一字节都需要等待对方的回应,最后还需要等待12位的延时,才可以发送下一个命令;在批量数据传输时,写第一字节需要地址信息,后续字节使用连续写命令,省略地址信息;
(3)由编写的串行通信程序将所需传输的数据传输至目标微控制器,实现MON08接口的批量数据传输。
2.根据权利要求1所述的MON08接口批量数据传输方法,其特征在于:所述步骤(1)中的串行通信程序采用同步通信方式进行数据传输。
3.根据权利要求2所述的MON08接口指量数据传输方法,其特征在于:所述同步通信方式是,主机方发送数据时,先发送4个周期的“低电平”同步信息,然后发送数据位,并将数据位信息持续10个周期;接收方在接收到同步信息后,延时8个周期后接收信息位;主机方在接收数据时,先发送4个周期的同步信息,然后将I/O口置为输入状态,延时6个周期后接收信息位;接收方在接收到同步信息后,把需要发送的信息位发送到线上。
CN200810243785XA 2008-12-15 2008-12-15 Mon08接口批量数据传输方法 Expired - Fee Related CN101446937B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200810243785XA CN101446937B (zh) 2008-12-15 2008-12-15 Mon08接口批量数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200810243785XA CN101446937B (zh) 2008-12-15 2008-12-15 Mon08接口批量数据传输方法

Publications (2)

Publication Number Publication Date
CN101446937A CN101446937A (zh) 2009-06-03
CN101446937B true CN101446937B (zh) 2010-09-01

Family

ID=40742621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200810243785XA Expired - Fee Related CN101446937B (zh) 2008-12-15 2008-12-15 Mon08接口批量数据传输方法

Country Status (1)

Country Link
CN (1) CN101446937B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045758B (zh) * 2015-06-30 2018-10-12 宁波东海仪表水道有限公司 一种串行通信数据校验方法
CN109634897A (zh) * 2018-12-20 2019-04-16 宁波三星智能电气有限公司 基于分立式非标mbus通信方法

Also Published As

Publication number Publication date
CN101446937A (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
CN104866452B (zh) 基于fpga和tl16c554a的多串口扩展方法
CN102436385A (zh) 一种可编程逻辑器件配置文件在线更新装置
CN114286992B (zh) 菊花链复杂命令
CN103868421B (zh) 一种在控制主机屏幕上显示电子雷管位置信息的方法
CN106776391A (zh) 一种NAND Flash控制器的控制方法和装置
CN102750241A (zh) 一种上位机和下位机之间的通信方法及系统
CN100557532C (zh) 一种快速控制原型系统
CN102902624A (zh) 一种软件调试系统及方法
CN102520961A (zh) 片外在线可编程的soc系统及其控制方法
CN108664264A (zh) 一种基于cpu通过jtag方式远程更新fpga的装置和方法
CN110347529A (zh) 用于执行错误侦测协议的存储器装置及方法
CN102750249B (zh) 上位机与下位机通信的方法、装置及系统
CN101452393A (zh) 基于pci总线的dsp2812程序在线升级方法
CN101446937B (zh) Mon08接口批量数据传输方法
US9348774B2 (en) Controller-opaque communication with non-volatile memory devices
KR20040028917A (ko) 정보를 변환하는 통신 제어기 및 방법
CN102193860B (zh) 微控制器在线调试电路及方法、微控制器
CN109416667A (zh) 具有动态且可配置的响应的、使用两个存储器级的串行设备仿真器
CN112542210A (zh) 一种高速率的flash极限读写速度测试装置
CN102253875A (zh) 基于PicoBlaze嵌入式软核处理器的FPGA逻辑模块调试与数据采集方法
CN103500585B (zh) 一种用于控制单次可编程存储器的控制电路及其控制方法
CN113609052A (zh) 基于fpga和微处理器的芯片模拟系统及实现方法
CN208589013U (zh) 一种基于cpu通过jtag方式远程更新fpga的装置
CN109308031A (zh) 一种基于fpga电路的参数配置方法、配置装置及存储空间
CN102693200A (zh) 一种基于cpld的spi通信端口

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Assignee: Suzhou big Mdt InfoTech Ltd

Assignor: Soochow University

Contract record no.: 2011320010030

Denomination of invention: Batch data transmission method of MON08 interfaces

Granted publication date: 20100901

License type: Exclusive License

Open date: 20090603

Record date: 20110330

C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100901

Termination date: 20121215