基于专家系统和Round-Robin算法的芯片编程系统

2019-10-15 07:57曾华鹏周曦国
关键词:时钟编程单片机

曾华鹏,乔 佳,周曦国,汤 莉,贺 阳

(1.天津中德应用技术大学 智能制造学院,天津 300350;2.天津师范大学 计算机与信息工程学院,天津 300387;3.天津财经大学理工学院,天津 300222)

我国制造业正面临着环境不断变化的挑战,全球化市场和劳务竞争的加剧,对制造业在提高产品质量和减少资源消耗、提高生产效益和降低生产成本等方面都提出了更高的要求,基于物料标志的生产过程可视化、 智能化和全局优化成为制造业关注的重点.因此,物联网技术在制造领域的应用和渗透是先进制造发展的必然结果[1].

当前电子生产线的芯片量产编程环节,大部分采用离线编程的方式,在操作过程中,容易出现误将不正确的固件写入芯片的问题.同时,现有量产编程器存在编程速度较慢,从而影响产能的问题[2].针对这些问题,本文利用专家系统和Round-Robin 算法设计了一款基于物联网架构的芯片高速量产编程系统,该系统可根据工艺要求实现固件的自动更新,从而提高生产的自动化程度,这对提高芯片生产线的生产能力和增加产量具有非常重要的意义[3].

1 系统设计

整体系统基于物联网架构实现,分为感知层、网络层和应用层[4].应用层为基于Niagara 平台(Tridium公司)开发的服务器端程序,网络层为基于JACE8000(Tridium 公司)的协议转换器,感知层为基于STM32实现的编程器.系统结构如图1 所示.

图1 系统结构Fig.1 Architecture of system

服务器端程序基于Niagara 平台开发.Niagara 是一种应用框架,特别适用于智能设备的相关应用,包括设备连接到企业级的应用、支持互联网的产品和基于互联网自动化系统的开发[5].服务器端程序根据工艺要求,自动选择待编程芯片的型号,匹配相应的固件,同时根据芯片型号解析出编程所需的参数(编程接口类型、同时进行编程的芯片个数、芯片最高编程时钟频率、芯片的容量、编程电压等),并将数据发送至编程器.

位于网络层的JACE8000 是Tridium 公司开发的一款新型的多协议转换器,它以嵌入式系统为平台,结合物联网,将管理人员发送的控制命令转换成不同的协议,发送给工业设备,使不同协议的设备可以实现统一管理[6].本系统中的JACE8000 负责将服务器端的TCP/IP 协议转换成编程器能够识别的Modbus协议.

位于感知层的编程器通过Modbus 获取来自服务器端的信息,并对芯片进行编程.

2 系统原理及建模

实践表明,降低瓶颈工时,使各工位生产同步化是提高流水线平衡率、满足产能要求的关键[7].芯片编程速度和时间(特别是大容量芯片)直接影响着电子产品的产能.芯片编程速度主要取决于芯片所能承受的编程时钟的最高频率和编程电压[8].不同型号的芯片,其供电电压与对应的最高编程速度不同.为最大限度提高编程速度,应采用最高频率所对应的供电电压并以最高时钟频率对芯片进行编程.部分芯片的供电电压和最高时钟频率见表1.

表1 芯片编程特性Tab.1 Programming characters of chips

对于单个芯片的编程,采用页编程的方式进行,编程总时间为

其中:P 为页数;TP为每个芯片一页编程所需要的时间,等于每一页的大小除以编程速度;SP为芯片每一页的容量;FCLK为芯片编程时钟频率,可由相关技术手册查询;TWR为页编程等待时间.对于单个芯片的页编程方式,本文采用专家系统,确保系统以最优的编程电压和频率进行编程,这将大大提高芯片的编程速度.

对于多个芯片的编程,以页编程的方式,每页编程结束后必须等待一个预定义的时间TWR,才能进行下一页的编程.因此,本文利用Round-Robin 算法,使系统在第1 个芯片第1 页编程完毕后,即切换到下一个芯片的第1 页进行编程,以此类推,只需确保轮转到第1 个芯片第2 页开始编程时,所用时间不小于该芯片对应的TWR即可,即

其中:n 为并行编程芯片的个数;TIdle为对应轮次需空闲等待的时间.采用Round-Robin 算法的并行编程,每一轮(对所有芯片的同一页进行编程)的总时间为:

其中:Tp1为第1 个芯片页编程时间;Tpr为第2 个芯片到第n 个芯片的页编程总时间.若Tpr>TWR,则TIdle=0,否则TIdle=TWR-Tpr.多芯片并行编程的总时间为

3 硬件设计

3.1 硬件结构

系统硬件采用的芯片为意法半导体的STM32F103RCT6 单片机,STM32 单片机具有丰富的外设功能和数据处理能力[9].硬件结构如图2 所示.

整个系统由电源电路模块、 信号切换电路模块、编程信号电路模块、按键输入模块和RS485 通讯模块构成.电源模块负责给单片机和编程夹具供电;信号切换电路可以将芯片编程所需的信号(数据信号、时钟信号和电源信号等)切换到多个编程夹具中的任意一个;RS485 通讯电路负责和其他设备进行Modbus通讯;按键电路模块负责读取按键输入.

图2 硬件结构Fig.2 Architecture of hardware

3.2 电源电路

电源电路基于低压差电压调节器LM1117 和低噪声LDO 调节器MIC5209 实现,其原理如图3 所示.

图3 电源电路原理Fig.3 Schematic of power supply

其中:为满足不同芯片所需的编程电压,采用3个跳线接插头DIP1、DIP2 和DIP3.不同芯片对应不同的编程制具,当编程器与编程制具连接时,3 个接插头的其中一个将被短接,使待编程芯片获得最高编程时钟频率所对应的编程电压.

3.3 信号切换电路

单片机输出数据信号、时钟信号、GND 和编程电压.输出的4 个信号通过信号切换电路切换到多个待编程芯片中的任意一个.信号切换电路原理如图4所示.

信号切换电路基于单端多通道8 路开关CD4051实现,CD4051 的优点是能选通模拟信号和实现多路信号的选择和分配[10].通过设置A、B、C 引脚的高低电平,可使COM 端与CH0~CH7 的其中一个引脚连通起来.CD4051 的INH 引脚是使能端,可用来控制CD4051 使能.

单片机通过2 个IO(U10.3 和U11.3)模拟芯片对所需信号(数据信号和时钟信号)进行编程,同时输出GND 信号和电压信号.

如果编程夹具板的夹具不多于8 个,则可以采用2 个 CD4051 实现,通过控制 2 个 CD4051 的 INH 和A、B、C 引脚,可以实现最多16 路的切换,见图4 的第1 个电路图.

3.4 RS485通讯电路

RS485 通讯电路基于 RS485 隔离收发模块TD301D485 实现,其电路原理如图5 所示.

图4 信号切换电路原理Fig.4 Schematic of signal switch

图5 RS485 电路原理Fig.5 Schematic of RS485

图5 中TXD 和RXD 引脚连接到单片机的TX 和RX,单片机通过一个IO 连接CON 端,当IO 为低电平时,处于发送状态,当IO 为高电平时,处于接收状态.

4 软件设计

4.1 编程器总体程序

编程器从服务器端接收与芯片编程有关的参数,包括芯片型号、 同时进行编程的芯片个数等,同时从服务器接收待写入芯片的固件.编程器总体流程如图6 所示.

图6 编程器总体流程Fig.6 Whole flow of programmer

4.2 专家系统设计

软件设计基于专家系统,主要由人机接口、 推理机、解释器、知识库及其管理系统、数据库及其管理系统和知识获取机构组成[11].知识库是专家系统的重要组成部分,负责存储专家解决特定问题的知识,采用某种知识表示方法编辑或自动生成某种表示形式[12].本系统的知识库中存储芯片编程相关的知识,不同的芯片型号,其知识库中的编程参数类型和个数是相同的,参数的数值存在差异.以24C512 芯片为例,其知识库的具体参数和数值见表2.

表2 24C512 芯片编程知识库Tab.2 Programming knowledge base of chip 24C512

4.3 Round-Robin算法程序

Round-Robin 算法是一个应用广泛的经典调度算法[13].首先计算出每页的编程时间,进而确定每一轮的空闲等待时间,最后采用Round-Robin 算法对多个芯片进行编程,并且在每一轮中都等待充足的时间,以确保所有芯片的每一页编程结束后都能够至少等待一个不少于TWR的时间,算法流程如图7 所示.

图7 Round-Robin 算法流程Fig.7 Flow of Round-Robin algorithm

5 仿真与实际测试结果

利用MATLAB 进行仿真计算,以24C512 为例,图8 给出了不同编程时钟频率下,单个芯片和并行芯片个数为2、4、8 的传统算法和本文算法的总编程时间.

图8 24C512 的仿真结果Fig.8 Simulation results of 24C512

由图8 可见:对于单个芯片编程(并行芯片个数为1),提高编程时钟频率并不能成比例缩短编程时间,其原因在于虽然编程速度提高,但编程等待时间无法规避;而对于多个芯片的并行编程,由于采用了Round-Robin 算法,随着编程频率的提高,以及并行编程芯片个数的增加,本文算法的编程总时间与传统算法相比大幅减少.

本文设计的编程器实物如图9 所示.

编程器包括上半部和下半部.上半部为编程制具,可根据实际工艺需求放置不同的编程制具,如图9(a)所示;下半部为编程器主体,通过连接器与编程制具进行连接,如图9(b)所示.

图9 编程器实物Fig.9 Physical programmer

在实际测试中,以 24CXX 系列、93CXX 系列和AM29LVXX 系列芯片为测试对象,按100 kHz 的编程时钟频率以预定次数连续进行一对四编程,取编程时间平均值,部分测试结果如表3 所示.

表3 部分测试结果Tab.3 Part of test results

由测试结果可见,本文算法的编程器所用时间均低于传统算法,而且,由于本文算法是按块/页写入,回读校验也是按块/页进行,一旦出现写入错误能够及时发现,并针对该块/页进行擦除和重新写入,因此本文算法的错误率远低于传统算法.

6 结论

本文提出了一种物联网架构的基于专家系统和Round-Robin 算法的芯片高速量产编程器系统的设计方案.经过仿真实验与实际测试,所设计的算法和编程器可有效缩短编程时间并大大降低错误率,从而可提高电子生产线的自动化水平.

猜你喜欢
时钟编程单片机
别样的“时钟”
编程,是一种态度
元征X-431实测:奔驰发动机编程
古代的时钟
编程小能手
纺织机上诞生的编程
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的多功能智能插排
基于单片机的便捷式LCF测量仪