数据采集系统从站设计

软件设计:

程序的说明:

本程序为从站程序。完成AD,接受命令,并发送数据等功能,以及实现主从式485协议(rs485)中的从站功能。

1.该程序有以下功能:初始化,AD,定时器,串口接受,串口发送

2.主程序完成初始化。之后不断查询是否有接受数据,并作出相应处理:启动AD,发送数据,状态等。从而实现了主从式rs485的从站功能。

3.AD采用中断方式,且不使用中断嵌套

 

数据变量:

本机站点地址:     lcl_adr   RAM:20H               EEPROM固化:00H

本机状态:         lcl_status   21H

总线状态:         bus_status   22H

接受到的主机命令:  host_cmd        23H

保存status reg: 24H         status_temp

w reg    25H , a5H   并且能从体3,体4映射过来即所有体的该单元定义为w_temp

fsr_temp       equ 26H

缓冲区队列变量:     计数:2aH 对头:2bH 对尾:2cH   队列:50H---7fH

发送,接受数据用到变量:   起与30H

rc_data1   equ 30H      ;用于存rcreg

      rc_count   equ 31H      ;接受计数器

tx_count   equ 32H      ;发送计数器,一次最多发送5组,15 byte数据

tx_data1   equ 33H      ;发送暂存数据

暂存AD结果变量, 中间变量:起与40H

ad_resl    equ 40H      ;暂存ad结果,这三个单元必须连续

ad_resl1   equ 41H

ad_resh    equ 42H

temp0      equ 46H      ;中间变量

temp1      equ 47H

count      equ 48H      ;循环计数器

int_count  equ 49H      ;中断程序中用到计数器,避免中断保护

 

本机状态:lcl_status            21H

bit 7

Bit 6

bit 5

bit 4

bit 3

bit 2

bit1

bit0

 

 

 

 

 

 

 

ad_start

 

总线状态:bus_status            22H

bit 7

Bit 6

bit 5

bit 4

bit 3

bit 2

bit 1

bit 0

 

 

 

 

 

Broadcast

is_adr

Lcl_data

 

 

接受到的主机命令:host_cmd          23H

00H  数据帧标志

01H  启动AD

02H  关闭AD

03H,请求数据

04H,请求重发

05H  广播设置分站地址

06H  查询地址

 

 

 

问题及说明:

1.查询方式是否能及时接受,也即当接受处理一个字节的数据时,下一个数据是否能及时接受。

解决:接受一个字节数据需要时间,只要处理时间在这个时间范围内就可以及时接受。以19.2K为例,这个时间至少为:10/19.2ms=0.52ms

关键是从机发送一帧数据时间较长,但是主机发送两帧数据之间有很长时间的间隔,因此,如果是本机数据,则接收完一帧再做相应处理。即使是发送一帧数据也足以完成

 

2.AD包括采样时间20us和转换时间11TAD,以4MHZ8Tosc为例,就是88us

 

3.缓冲区数据是变换后3个一组存入的,如何保证数据不会发生错位

 

4.中断程序用到了变量fsrcount,temp0,temp1

解决:将count改为int_count,不用保护

      fsr保存于fsr_temp

      temp0temp1仅中断程序用到,不用保护

      其他并无需要保护的变量

 

5.本结构流图并未考虑广播地址及对站点地址的修改,地址查询命令等功能。

 

6.如果发送AD命令及发送数据请求命令,而AD未有启动,这是启动AD,即启动定时器。

 

7.各中断标志的变化

 

8.掉电复位功能还未禁用

 

扩展:

加入对站点地址的修改

加入初始化时地址的查询命令

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值