要求:上位机向下位机发送定时启动信息,然后检测当按下51板上按键时,将会向上位机软件发送按键位置,按键状态(开/关),以及按键的精确时间,该时间由51板所得出,上位机接收后,将所得信息进行处理并存入数据库。
特别要求:设计一个通信协议来进行上下位机的通信,用C#进=行上位机软件的串口编程(熟悉后用C)。
目前想法:设计通信协议,所要求为能够传递单片机的按键位置+按键状态+时间标签,然后还有CRC校验。暂时决定用一个5帧的数据包来发送数据,发送的方式为可以传输8位数据的方式1.
帧结构图为:
忘记画CRC校验的了,这个暂时就当实验用,先做出来。
下位机的整体设计为采用中断的方式,单片机在不停的计时,当有按键按下时,单片机产生中断然后将此时的按键状态及时间发送给上位机,因为要求精确的按下时间所以应该是单片机不间断的计时,另外还有个串口中断!!!
关于通信,自己设计的太理想化了,51单片机为单字节发送,只要将需要发送的数据传送到一个字符串,然后将字符串依次发出即可,现在要考虑的是如何进行校验的问题!!配图无关了……就当涂鸦吧,哈哈~