[NextPage] 软件流程
发送
发送过程采用主动查询方式完成,为保证每个发送位的时长相同,整个过程关闭中断。首先,设定定时器定时一位时长,启动定时器,关闭中断,开始一帧的发送;然后,在发送一位时长的低电平(起始位)后,按最高位在先的顺序依次发送6个数据位,同时计算偶校验位,并在数据位后发送;最后,发送2位时长高电平作为停止位,结束一帧的发送。关闭定时器,开放中断,发送过程结束。
接收
接收过程是在中断处理程序中完成的。中断是由下降沿触发的,进入中断的时刻是处在接收起始位的时段。为了保证接收准确,在检测到起始位后,不能在每一位时长的开始而应在其中间进行采样。进入中断程序后,首先通过设定定时器,等待一位半时长,跳过整个起始位和半时长的首个数据位,然后开始按最高位在先的协议接收六个时长的数据位,每接收一位进行串并转换和校验位计算;随后接收校验位并与计算机结果比较,确定是否接收
正确。出于简化程序,校验位接收完毕后,没有读取停止位。最后关闭定时器,结束接收过程,中断返回。
在μPD78045F的中断系统中,高优先级中断的响应时间最长32个CPU时钟,这些时延应在程序中进行补偿,尤其在高速率通讯时位定时时长很短,补偿尤为重要。补偿的方法是从位定时中减去最长时延32个时钟。在9600波特率、定时器 4分频计数情况下,应减去 32/4=8个定时器计数。
结语
本文介绍的软件UART实现方法,已在项目中实际应用,达到功能要求,工作稳定可靠。从以上方案可以看出,本方法的最高波特率可达38400,每一帧的格式可灵活改变,其中数据位长度和发送顺序均没有限制,可根据需要发送数十位的数据位。
使用本方法应具备以下条件:
本方法占用外部连线少,稳定可靠,使用方便,简单有效,由于其帧格式的巨大灵活性,是在低成本、中速率、特殊数据传输场合下的一个较好选择。
软件流程
发送
发送过程采用主动查询方式完成,为保证每个发送位的时长相同,整个过程关闭中断。首先,设定定时器定时一位时长,启动定时器,关闭中断,开始一帧的发送;然后,在发送一位时长的低电平(起始位)后,按最高位在先的顺序依次发送6个数据位,同时计算偶校验位,并在数据位后发送;最后,发送2位时长高电平作为停止位,结束一帧的发送。关闭定时器,开放中断,发送过程结束。
接收
接收过程是在中断处理程序中完成的。中断是由下降沿触发的,进入中断的时刻是处在接收起始位的时段。为了保证接收准确,在检测到起始位后,不能在每一位时长的开始而应在其中间进行采样。进入中断程序后,首先通过设定定时器,等待一位半时长,跳过整个起始位和半时长的首个数据位,然后开始按最高位在先的协议接收六个时长的数据位,每接收一位进行串并转换和校验位计算;随后接收校验位并与计算机结果比较,确定是否接收
正确。出于简化程序,校验位接收完毕后,没有读取停止位。最后关闭定时器,结束接收过程,中断返回。
在μPD78045F的中断系统中,高优先级中断的响应时间最长32个CPU时钟,这些时延应在程序中进行补偿,尤其在高速率通讯时位定时时长很短,补偿尤为重要。补偿的方法是从位定时中减去最长时延32个时钟。在9600波特率、定时器 4分频计数情况下,应减去 32/4=8个定时器计数。
结语
本文介绍的软件UART实现方法,已在项目中实际应用,达到功能要求,工作稳定可靠。从以上方案可以看出,本方法的最高波特率可达38400,每一帧的格式可灵活改变,其中数据位长度和发送顺序均没有限制,可根据需要发送数十位的数据位。
使用本方法应具备以下条件:
本方法占用外部连线少,稳定可靠,使用方便,简单有效,由于其帧格式的巨大灵活性,是在低成本、中速率、特殊数据传输场合下的一个较好选择。
信息来源:www.dzzl.cn