51单片机串口的原理和过程

51单片机串口的原理和过程,第1张

单片机C51串口中断接收和发送测试例程(含通信协议的实现)

通信协议:第1字节,MSB为1,为第1字节标志,第2字节,MSB为0,为非第一字节标志,其余类推……,最后一个字节为前几个字节后7位的异或校验和。

测试方法:可以将串口调试助手的发送框写上 95 10 20 25,并选上16进制发送,接收框选上16进制显示,如果每发送一次就接收到95 10 20 25,说明测试成功。

//这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收

//和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的

//程序编写: 龚建伟 webmaster@gjwtechcom

//技术主页:>

一般串行下载分两种:

1、ISP:在系统编程,一般目标芯片内包含了专用的接口电路,上位机发送编程命令码及编程控制信息后由芯片硬件自动完成编程。比如通过JTAG口升级就是其中的一种,现在推出的许多新的芯片比如ARM都采用此模式。ATMEL公司的AT89S5x系列的单片机的下载模式虽然不属于JTAG模式,但很类似,应该属于ISP类。

2、IAP:一般叫做在应用编程。MCS-51系列单片机中采用比较多的sst、stc两家公司的单片机就属于这种模式,与上面的模式是有区别的。

下面重点介绍一下IAP的工作流程:

以SST公司的89E564为例:FLASH分为2块,一块64K,就是我们应用程序要使用的程序空间;另一块是8K,现在出厂时一般都预置了自编程的软件代码,这部分代码与上位机的下载软件通讯,获取机器码内容,然后实现对64K的编程 *** 作。这8K的软件用的不是专门的指令,都是51系列标准的指令,只是增加了一些特殊功能寄存器用于实现自编程。

芯片上电启动后,程序首先在8K的程序空间中运行(其实此时相当于89C52芯片),程序主要工作流程如下:

第一步、首先检测串口有无上位机传递过来的编程命令,有的话应答,然后开始自编程 *** 作,编程结束后重新启动;

第二步、如果串口没有编程命令,则检测64K区是否存在有效的机器码。如果有则跳转到64K区正式开始执行应用程序,否则会在8K区中等待,准备接收上位机传送过来的编程命令。

对64K区的编程 *** 作,8k区中的软件只要将其代码从串口接收过来,送到相应的寄存器中,按照要求循环编程就可以了。所以这部分软件是可以修改的,比如某种设备有IC卡接口,就可以修改这8K的程序,实现通过IC卡升级软件的功能,只是这种方式第一次烧写时需要编程器,将8K区的出厂预装程序换成用户自己需要的升级程序。

归纳一下二者:

ISP编程属于纯硬件 *** 作,只要FLASH的物理特性未损坏,就可以实现串口升级,但升级模式是固定的。

IAP模式属于属于软件 *** 作,如果8K区并无物理损坏但软件有问题,就只能使用编程器来编程,无法实现串口升级。但正是由于这种可更改性,可以扩展多种升级方式,更灵活。其实物理损坏的可能性不大,所以我个人认为还是IAP更好些。

1这么理解没有问题,虽然在PC和PLC上都用的是16进制进行显示和计算,但实际上串口物理层的通讯是以0和1的脉冲形式来进行的。

2你所谓的时间间隔就是指的波特率,每秒钟可以发几个脉冲的意思,改变波特率就是改变脉冲的发送频率

3波特率一旦双方设定完毕就不能改变了,除非双方都有可以让软件修改硬件设置参数的功能,如果要改变字符与字符之间的发送时间间隔,就只能用程序来实现,每两个字符之间加个延时功能即可

4这个我没有研究过,可能是和内部的元器件自身的性质有关吧,设置这几种对硬件来说可能比较好计算,个人理解

以上就是关于51单片机串口的原理和过程全部的内容,包括:51单片机串口的原理和过程、单片机串口原理、麻烦问下单片机串口下载的原理是什么等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9317889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存