张盼盼,张团善,付道义
(西安工程大学 陕西 西安 710048)
相比于传统的CPU与外围设备一体的电路,采用工控板的设计方法具有易于移植、方便重复应用的特点。STM32工控板是一款极高性价比、尺寸极为紧凑的嵌入式控制模块。产品尺寸比一张名片还小却实现了几乎所有的工业计算机所需要的功能,可广泛应用于科研、军工、电力、工控、车载、通手持设备、医疗器械、教学等嵌入式领域。
STM32工控板载入嵌入式高性能32位处理器,该处理器是以Cortex-M3为内核,该内核采用了哈佛结构,拥有独立的指令总线和数据总线,可以让取指与数据访问并行不悖[1]。STM32工控板设计要求包括可以直接驱动7寸彩屏、带有以太网模块[2]和丰富的外接接口用于控制电机等外设。
系统框图如图1所示。
图1 硬件系统框图Fig.1 Structure diagram of the hardware system
该系统采用STM32F103VE芯片,此芯片是STM32的增强型系列,如图2所示。内核为ARM 32位的CortexTM-M3 CPU最高72 MHz工作频率,在存储器的0等待周期访问时可达1.25 DMips/MHz(Dhrystone 2.1),可实现单周期乘法和硬件除法。
图2 主控芯片电路Fig.2 Circuit of master chip
该芯片带512K字节的闪存程序存储器,高达64k字节的SRAM,带有4个片选的静态存储器控制器。支持CF卡、SRAM、PSRAM、NOR和NAND存储器,具有并行LCD接口,兼容8080/6800模式。
该工控板具有丰富的外接通信接口,包含多达2个I2C接口(支持SMBus/PMBus)、多达5个USART接口(支持ISO7816,LIN,IrDA接口和调制解调控制)、多达3个SPI接口(18M位/秒),2个可复用为I2S接口、CAN接口(2.0B主动)、USB2.0全速接口、SDIO接口。
选择STM32芯片的另一个原因在于,它有多达11个定时器。4个16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入。2个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器。2个看门狗定时器(独立的和窗口型的)。系统时间定时器:24位自减型计数器。2个16位基本定时器用于驱动DAC[3]。主芯片电路如图2所示。
采用STM32+SSD1963控制7寸屏的显示,虽然屏的控制器可以用CPLD或者FPGA来实现,但是考虑到此工控板的尺寸大小和稳定性,我们放弃自己设计显示屏控制器的想法,而是采用集成度很高的SSD1963芯片,如图3所示。
图3 7寸屏驱动电路Fig.3 Circuit of 7-inch screen driver
考虑到现阶段无线网络的广泛应用,以太网是目前全球使用最广泛的局域网技术,出色的性价比、灵活性和互操作性是其优势。在过去20年里,其标准一直随着网络的需求不断改进。作为IP网络的一种极具吸引力的解决方案,以太网具有下列关键特性:可扩充性;灵活的部署距离,支持从短程局域网(大约100 m)到长距离城域网(40 km以上)的各种网络应用;成本低;灵活性和互操作性;易于使用和管理。以太网电路连接方式如图4所示。
图4 以太网驱动电路Fig.4 Circuit of Ethernet driver
差分电路[4]是具有这样一种功能的电路。该电路的输入端是两个信号的输入,这两个信号的差值,为电路有效输入信号,电路的输出是对这两个输入信号之差的放大。设想这样一种情景,如果存在干扰信号,会对两个输入信号产生相同的干扰,通过二者之差,干扰信号的有效输入为零,这就达到了抗共模干扰的目的。该方案采用THC63LVDM83R芯片作为差分电路主芯片。如图5所示。
图5 差分电路Fig.5 Differential circuit
为了检测方案的可行性和工控板的完整性,用一个流水灯例程进行测试。作为经典的入门实验,非流水灯莫属。工控板本身是不带LED显示灯的,我们利用手边的开发板上的4个LED灯进行实验。它们分别为DS1、DS2、DS3、DS4。实验的预期目的是实现LED灯的交替闪烁。
流水灯的关键实际是如何控制STM32[5]的处理器的GPIO接口,作为IO口,输出指定的电平信号。
STM32的IO口 可以由软件配置成8中模式:
1)模拟输入;
2)输入浮空;
3)输入下拉;
4)输入上拉;
5)开漏输出;
6)推挽输出;
7)复用功能开漏输出;
8)复用功能推挽输出。对应到STM32库文件中的定义如下
Typedef enum
{GPIO_Mode_AIN=0x0,
GPIO_Mode_IN_FLOATING=0x04,
GPIO_Mode_IPD=0x28,
GPIO_Mode_IPU=0x48,
GPIO_Mode_Out_OD=0x14,
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;//配置GPIO端口速率
实验的最终结果达到了预期目的,实现LED灯的交替闪烁。尝试了更改管脚,用其他输出端口控制LED,均可实现控制LED灯闪烁。板级调试取得初步成功。
如图6、7所示。
图6 焊接前的工控板Fig.6 The industrial control board before welding
图7 焊接后的工控板Fig.7 The industrial control board after welding
文中设计的工控板是一款低成本、高性价比的工控板。它不仅仅可以用于简单的实验,还可以用于复杂的工业场所。我们将把它用于电脑横机系统和棉袜机系统的电控单元。此板的应用不仅仅局限于此,使用者可以根据自己的兴趣和需要,自己探索、研究。此次设计采用的SSD1963芯片,只能用于7寸屏彩屏的驱动,无法驱动其他尺寸的屏。此方案在对屏的驱动方面,存在着在不足。下一代的设计中,我们计划采用FPGA芯片取代专用SSD1963芯片,使工控板的应用范围更加广泛。
[1]Joseph Yiu.Cortex-M3权威指南[M].宋岩,译.北京:北京航空航天大学出版社,2009.
[2]李正军.现场总线与工业以太网及其应用系统设计[M].北京:人民邮电出版社,2006.
[3]STM32F103XX Cortex-M3 programming manual.STM32F 103XX Datasheet[EB/OL].[2009-04-01].http://infocenter.arm.com/help/topic/com.arm.doc.ddi0337e/DDI0337E_cortex_m3_r1p1_trm.pdf.
[4]谢詹奇.高速LVDS收发器的研究与设计[D].上海:上海交通大学,2008.
[5]夏骏,王甜.基于STM32和GSM的远程遥控定时开关装置[J].电子科技,2013(1):112-114,130.XIA Jun,WANG Tian.Remote control timer switch based on STM32 and GSM[J].Electronic Science and Technology,2013(1):112-114,130.
[6]周立功.ARM嵌入式系统软件开发实例[M].北京:北京航空航天大学出版社,2008.
[7]STM32F103XX Referencemanual.STM32F103XX Datasheet[EB/OL].[2009-04-01].http://www.st.com/stonline/stappl/resourceSelector/app?page=resourceSelector&doctype=PROGRAMMING_MANUAL&FamilyID=141.pdf.