系统硬件设计
基于AT89C5131的通信和控制模块主要完成以下功能:在通信方面,通过USB实现与计算机的通信,接收计算机对设备的控制命令和计算机发送的数据,并将设备的工作状态发送给计算机,同时将计算机传来的控制命令和数据通过SPI接口传送到其他设备模块,并收集其他设备模块的状态信息;在控制方面,AT89C5131负责收集设备控制显示面板的控制命令,更新设备显示状态等。由于采用USB通信系统,AT89C5131除了能够根据控制面板控制设备的运行,也能根据计算机的命令控制设备的运行,实现了对设备的双重控制。该系统中AT89C5131的外围连接如图1所示。
1.1 AT89C5131的键盘端口特性及键盘设计
AT89C5131拥有一个允许与8×n矩阵键盘连接的键盘接口,其输入均具有高或低电平可编程中断能力。键盘接口与C51内核的通信通过3个特殊功能寄存器实现,分别是键盘电平选择寄存器(KBLS)、键盘中断使能寄存器(KBE)和键盘标志寄存器(KBF)。
AT89C5131的键盘输入被设计为分享同一个中断向量的8个独立的中断源,寄存器IEN1中的中断使能位KBD允许键盘中断全局的使能及不使能,根据KBLS每一位的值,每一个键盘输入都有检测出可编程电平的能力,然后键盘检测就被反应到KBF中,而通过软件使用KBE可以屏蔽中断标志KBF.正是这样的结构使得键盘排列可以从1×n延伸至8×n的矩阵,同时还使得P1输入用于其他用途。
在该设计中,将4个键盘端口(P1.O,P1.2,P1.3,P1.4)及2个外部中断端口(P3.2,P3.3)与控制面板上的6个按键相连;实现系统的内外、启停、暂停继续控制及参数组的选择等功能。这6个端口都采用低电平触发产生中断。
1.2 USB各端口的特性及USB通信设计
AT89C5131的USB2.0全速从接口包含了7个终端点,其中0号终端点被配置成为默认的控制终端点。其他1~6号终端点都可以通过特殊寄存器配置为控制(Control),突发(Bulk),中断(Interrupt)和周期性(Isochronous)模式。由于每一个终端点都由一组独立的寄存器对该终端点进行控制、状态识别和数据的存取,则如果将这些寄存器直接映射到51单片机的特殊功能寄存器地址空间显然是容纳不下的。因此,这7个终端点的7组寄存器在单片机的地址空间中其实使用的是同一组寄存器的地址,而通过一个特殊功能寄存器(UEPNUM)来选择当前该组寄存器实际选择的是哪个终端点的寄存器组,这样就大大节省了所占用的地址空间,为集成其他特殊外设提供了可能。
在该设计中,PC机将数据通过USB传给AT89C5131,传输完一次后AT89C5131向PC机回传数据传输正确与否的标志,PC机可以根据收到的标志进行相应的操作。PC机向AT89C5131传输的数据主要是参数和控制命令两种类型。为将其区分开来,使用USB的端口4和端口6接收这两种数据。其中,端口4用来接收控制命令;端口6用来接收参数。相应地,控制命令的回传使用端口5;参数的回传使用端口3.为简单起见,端口3~端口6均被配置为批量类型;端口3、端口5为IN端口;端口4、端口6为OUT端口。
1.3 SPI端口特性及SPI通信设计
SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR.外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。SPI接口的全称是“Serial Peripheral Interface”,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
AT89C5131的SPI模块允许在McU和其他外围设备之间实现全双工、同步、串行通信,它能以配置为主或者从两种操作模式提供可编程极性和相位串行时钟,同时还提供8个可编程的主机时钟率。SPI模块包括4个端点(MOSI,MISO,SCK,SS),MOSI和MISO都是用来传输数据的,且每次只能传输1个字节的数据。不同的是,MOSI将数据由主机输出从机输入,而MISO正好相反。SCK信号用以使通过MOSI和MI-SO的数据输人/输出设备同步,它可以由主机驱动产生8个时钟周期,用以完成一个字节在串行通道上的交换。SS用于从机的选择,低有效。SPI模块的配置和初始化可以通过寄存器SPCON完成,而数据的交换则需要使用寄存器SPSTA和SPDAT两个寄存器,在软件编写过程中,SPI能否正常工作主要取决于对上述3个寄存器的操作。
在该设计中,SPI被配置为主机模式;SS端口处于无效状态;AT89C5131通过MOSI端口向DSP传输参数及控制命令;DSP通过软件设置P1.1(SS)端口的状态表明数据是否正确接收,即若正确接收,则置P1.1为1,否则置P1.1为0;AT89C5131通过检测P1.1的值来决定是否重传数据。
系统硬件设计
基于AT89C5131的通信和控制模块主要完成以下功能:在通信方面,通过USB实现与计算机的通信,接收计算机对设备的控制命令和计算机发送的数据,并将设备的工作状态发送给计算机,同时将计算机传来的控制命令和数据通过SPI接口传送到其他设备模块,并收集其他设备模块的状态信息;在控制方面,AT89C5131负责收集设备控制显示面板的控制命令,更新设备显示状态等。由于采用USB通信系统,AT89C5131除了能够根据控制面板控制设备的运行,也能根据计算机的命令控制设备的运行,实现了对设备的双重控制。该系统中AT89C5131的外围连接如图1所示。
1.1 AT89C5131的键盘端口特性及键盘设计
AT89C5131拥有一个允许与8×n矩阵键盘连接的键盘接口,其输入均具有高或低电平可编程中断能力。键盘接口与C51内核的通信通过3个特殊功能寄存器实现,分别是键盘电平选择寄存器(KBLS)、键盘中断使能寄存器(KBE)和键盘标志寄存器(KBF)。
AT89C5131的键盘输入被设计为分享同一个中断向量的8个独立的中断源,寄存器IEN1中的中断使能位KBD允许键盘中断全局的使能及不使能,根据KBLS每一位的值,每一个键盘输入都有检测出可编程电平的能力,然后键盘检测就被反应到KBF中,而通过软件使用KBE可以屏蔽中断标志KBF.正是这样的结构使得键盘排列可以从1×n延伸至8×n的矩阵,同时还使得P1输入用于其他用途。
在该设计中,将4个键盘端口(P1.O,P1.2,P1.3,P1.4)及2个外部中断端口(P3.2,P3.3)与控制面板上的6个按键相连;实现系统的内外、启停、暂停继续控制及参数组的选择等功能。这6个端口都采用低电平触发产生中断。
1.2 USB各端口的特性及USB通信设计
AT89C5131的USB2.0全速从接口包含了7个终端点,其中0号终端点被配置成为默认的控制终端点。其他1~6号终端点都可以通过特殊寄存器配置为控制(Control),突发(Bulk),中断(Interrupt)和周期性(Isochronous)模式。由于每一个终端点都由一组独立的寄存器对该终端点进行控制、状态识别和数据的存取,则如果将这些寄存器直接映射到51单片机的特殊功能寄存器地址空间显然是容纳不下的。因此,这7个终端点的7组寄存器在单片机的地址空间中其实使用的是同一组寄存器的地址,而通过一个特殊功能寄存器(UEPNUM)来选择当前该组寄存器实际选择的是哪个终端点的寄存器组,这样就大大节省了所占用的地址空间,为集成其他特殊外设提供了可能。
在该设计中,PC机将数据通过USB传给AT89C5131,传输完一次后AT89C5131向PC机回传数据传输正确与否的标志,PC机可以根据收到的标志进行相应的操作。PC机向AT89C5131传输的数据主要是参数和控制命令两种类型。为将其区分开来,使用USB的端口4和端口6接收这两种数据。其中,端口4用来接收控制命令;端口6用来接收参数。相应地,控制命令的回传使用端口5;参数的回传使用端口3.为简单起见,端口3~端口6均被配置为批量类型;端口3、端口5为IN端口;端口4、端口6为OUT端口。
1.3 SPI端口特性及SPI通信设计
SPI(Serial Peripheral Interface--串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI有三个寄存器分别为:控制寄存器SPCR,状态寄存器SPSR,数据寄存器SPDR.外围设置FLASHRAM、网络控制器、LCD显示驱动器、A/D转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCLK)、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI和低电平有效的从机选择线SS(有的SPI接口芯片带有中断信号线INT、有的SPI接口芯片没有主机输出/从机输入数据线MOSI)。SPI接口的全称是“Serial Peripheral Interface”,意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM,FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。
AT89C5131的SPI模块允许在McU和其他外围设备之间实现全双工、同步、串行通信,它能以配置为主或者从两种操作模式提供可编程极性和相位串行时钟,同时还提供8个可编程的主机时钟率。SPI模块包括4个端点(MOSI,MISO,SCK,SS),MOSI和MISO都是用来传输数据的,且每次只能传输1个字节的数据。不同的是,MOSI将数据由主机输出从机输入,而MISO正好相反。SCK信号用以使通过MOSI和MI-SO的数据输人/输出设备同步,它可以由主机驱动产生8个时钟周期,用以完成一个字节在串行通道上的交换。SS用于从机的选择,低有效。SPI模块的配置和初始化可以通过寄存器SPCON完成,而数据的交换则需要使用寄存器SPSTA和SPDAT两个寄存器,在软件编写过程中,SPI能否正常工作主要取决于对上述3个寄存器的操作。
在该设计中,SPI被配置为主机模式;SS端口处于无效状态;AT89C5131通过MOSI端口向DSP传输参数及控制命令;DSP通过软件设置P1.1(SS)端口的状态表明数据是否正确接收,即若正确接收,则置P1.1为1,否则置P1.1为0;AT89C5131通过检测P1.1的值来决定是否重传数据。
举报