VB串口通信mscomm中传输和接收缓冲区怎么理解
2个回答
展开全部
要把某个数字或者一段文字通过串行接口发送出去是一个很复杂的事。
要在铜线上严格按照通讯协议,以微秒级别的间隔发送高低电平是软件系统难以做到的。
所以,人们在串行接口芯片中预留了一些存储空间作为缓冲区。软件系统只负责将要发送的内容放进缓冲区,硬件系统只要发现缓冲区中有数据,就按照时钟晶振提供的精确时间间隔将数据转换为高低电平送到铜线上。
后来,由于硬件缓冲区很小(一般只有8个或16个字节),人们又通过软件方式在硬件缓冲区的上层再加一层软件缓冲区,其大小可以扩展至1024字节,甚至更高。这个就是MSComm控件里面的缓冲区了。
当你要发送一串数据时(比如200个),你可以直接送到MSComm里面,后面的操作全都不用管了。而实际上,MSComm会从其中按次序将16个字节送入硬件缓冲区,等硬件系统将数据发走后,再送16个…… 如此循环,直至全部发送完毕。接收缓冲区的作用与之类似。
要在铜线上严格按照通讯协议,以微秒级别的间隔发送高低电平是软件系统难以做到的。
所以,人们在串行接口芯片中预留了一些存储空间作为缓冲区。软件系统只负责将要发送的内容放进缓冲区,硬件系统只要发现缓冲区中有数据,就按照时钟晶振提供的精确时间间隔将数据转换为高低电平送到铜线上。
后来,由于硬件缓冲区很小(一般只有8个或16个字节),人们又通过软件方式在硬件缓冲区的上层再加一层软件缓冲区,其大小可以扩展至1024字节,甚至更高。这个就是MSComm控件里面的缓冲区了。
当你要发送一串数据时(比如200个),你可以直接送到MSComm里面,后面的操作全都不用管了。而实际上,MSComm会从其中按次序将16个字节送入硬件缓冲区,等硬件系统将数据发走后,再送16个…… 如此循环,直至全部发送完毕。接收缓冲区的作用与之类似。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询