在此通信协议转换系统中,为了能够更加简单明了的实现通信协议转换的功能,以USB接口设备为上层信号发送端,RS-232接口设备、can总线为下层接收端,实现USB与232/CAN总线的互联通信。在这里,单片机不仅要完成对USB接口设备信号的采集,还要将之转换成下层设备的通信协议,对于下层设备也要进行数据采集分析,且按照上层协议对数据进行打包处理。具体的数据传送过程有以下几个步骤:即先要上层的设备首先发送数据,紧接着协议转换器接收数据,然后协议转换器按照协议转换格式对指令进行转换并将转换后的数据帧发送到下层设备,下层设备按照原有的通信协议返回数据或执行动作,协议转换器接收数据并由协议转换器将下层设备设备返回的数据按照协议转换格式进行转换并回复到上层设备,到此一次数据传送过程结束。
依据以上的研究,为了实现协议转换的功能,需要完成对应的硬件设计和软件设计。
2。3 系统设计要求
本次毕业设计的主要要求就是设计一套协议转换器系统,并且加入RS-232、CAN总线与USB接口,进而能够实现CAN总线、RS-232、USB接口的互连互通。
3 系统硬件设计
3。1 核心模块设计
3。1。1 STC89C52
STC89C52是因特尔公司系列单片机中基础产品,它是高性能8位单片机,是标准的MCS-51的HCMOS产物[1][6]。它拥有着CMOS的高密度和高速技术另外还有CMOS的低功耗特性,它的体系结构和指令系统与51单片机相同,是89c51的增强版,加入了输出时钟和计数器等模块,能够在马达控制等类似应用场合中使用。89C52的中央处理单元是内置8位、RAM是512字节、8k的ROM、双向输入/输出口达到32个、拥有16位定时/计数器3个和5个中断源,全双工的串行通信口一个。另外,89C52拥有低功耗模式,空闲模式和掉电模式能够使用软件选取。空闲模式中,CPU被禁用只由串行口、定时器和中断系统支撑运行。掉电模式只执行RAM数据保存指令,其他一切功能禁用。89C52的具体的管脚图如图3-1。
图 3-1 STC89C52管脚图
1 管脚说明:文献综述
P0口:P0口是双向8位I/O口,采用漏极开路。给P0口第一次写"1”时,被定义为高阻输入。P0也能用做外部ROM。在FLASH进行编程时,原码从P0口输入,当FLASH校验时,原码从P0输出,需外部拉高P0口。
P1口:P1口为双向8位I/O口,无需外部加入上拉电阻。P1口写1时,被内部上拉电阻上拉为高,能作为输入使用,外部将P1口拉低时,P1会输出电流,原因就是内部上拉。在FLASH编程和校验时,P1口能够接收低八位地址。
P2口:P2口为双向8位I/O口,同样采用内部上拉。P2口作为外部ROM或16位外部地址RAM进行数据收发时,只输出地址的高八位。在地址1被输入时,内部上拉作用,对外部8位地址RAM读写时,P2口能够将其特殊功能寄存器里的内容输出。
P3口:P3口为双向8位I/O口,同样采用内部上拉。用做输入时,被外部下拉为低,P3口将输出电流,这是因为上拉的原因。P3口还是STC89C52的一些特殊功能口