访问电脑版页面

导航:老古开发网手机版其他

公路运输监控仪中多机并行工作的实现

导读:
关键字:
公路运输监控仪中多机并行工作的实现 第二炮兵工程学院陈家照关正西姜洪开 航天科技集团四院四十三所王丽华 摘要介绍一个基于单片机的多机并行工作的公路运输监控仪的结构及其微机间的通信设计;详细叙述微机间PIO通信及共享存储器通信方式的结构、通信协议以及通信过程。 关键词公路运输监控仪PIO通信共享存储器通信 引言 公路运输监控仪是一套自动化运输状态监控仪器,用于某些贵重、精密、易损装备公路运输状态监控,可对运输时的重要参数进行采集、显示、记录、控制及报警。监控仪采用大屏幕液晶显示器显示振动波形和参数;采用语音合成技术进行操作提示、参数播报与报警;采用三机并行工作方式,以提高监控仪的运行速度。 一、 三机并行工作的结构 监控仪的多微机结构如图1所示,采用3片MCS\ 51单片机,组成主从式多微机系统:1个主机,2个从机,微机间均采用非标准总线互连。主机与从机Ⅰ间只有2根握手信号线直接互连,而数据总线通过并行输入输出口相连。主机与从机Ⅱ也有2根握手线直接互连,两微机的数据、地址和控制信号通过双端口与共享存储器相连。 图1三机并行工作结构图1. 主机结构 图2监控仪主机系统结构框图监控仪主机系统的结构如图2所示。其外围芯片主要有并行输入输出口、存储器等。前向通道有传感器、信号处理电路、多路开关、采样保持器、A/D转换器、电平变换电路等,后向通道有D/A转换器、功率驱动电路、功率开关等,此外还有按键输入、打印驱动等。 主机的任务较为繁杂,主要有:① 对参数进行采集、换算,并记录重要数据以备事后分析。需采集的参数包括车辆运行环境参数(如冲击振动、行驶速度、环境温湿度、大气压力等)和装备自身参数(如压力、温度等)。② 根据装备运输条件所要求的参数范围进行比较,判断参数是否正常。③ 根据判断结果或面板请求对参数进行必要的控制,根据面板请求或判断结果向从机Ⅰ发送命令和数据。④ 根据显示要求向从机Ⅱ发送命令和数据。⑤ 对主机与两个从机之间的信息交换、两个从机的工作进程进行控制与管理。⑥ 根据面板请求组织打印。 2. 从机Ⅰ结构 两个从机的工作相对主机而言要单纯得多。从机Ⅰ的工作主要是接收主机送来的命令和数据,并根据命令图3从机I系统结构框图和数据组织语音处理芯片进行操作提示、参数报告或越限报警。 从机Ⅰ的系统结构如图3所示,主要由存储器、输入输出口、语音处理芯片、驱动电路及喇叭等组成。 3. 从机Ⅱ结构 从机Ⅱ的工作主要是接收主机发送的命令和数据,并根据命令和数据组织显示控制板对液晶显示模板的显图4从机II系统 结构框图示进行控制与管理,以实时显示冲击振动波形和参数。 从机Ⅱ的系统结构如图4所示,主要由存储器、输入输出口、显示控制板、液晶显示模板等组成。 4. 三机并行工作的协调 3个微机的工作进程由主机进行协调与管理,共同完成各种参数的实时采集与显示、参数异常时的实时报警与控制。 图5三机并行工作协调如图5所示,上电后,主机首先与两从机进行同步联络,分别通过STB1和STB2向两从机发出3个脉冲,并通过ACK1和ACK2检测两从机的响应脉冲,若某从机无响应,则通过指示灯报警。联络成功后,主机进行数据采集、处理并响应面板请求等,根据任务要求再与两从机进行信息交换和任务同步。两从机上电后等待主机的同步联络脉冲,然后通过ACK1或ACK2发出脉冲响应主机并进行语音提示或初始显示,同时作好接收主机命令、数据准备。如果从机超时仍未接收到主机的联络脉冲或同步命令,也各自进行报警。主机和从机联络成功后各自将STB1、STB2、ACK1和ACK2置高,以此将管理与协调的权力交给主机。 二、 主机与从机Ⅰ的工作协调与信息交换 从机Ⅰ的工作由主机通过与其进行命令和数据传递(即信息交换)来进行控制与管理。由于它们之间的数据传递量较小,且主要是单向通信,因此这种信息交换由简单的PIO通信结构实现。 1. 信息交换的物理实现 如图6所示,主机与从机Ⅰ之间通过一片PIO接口芯片实现互连,组成单I/O口的PIO通信信道。由于主机与从机Ⅰ之间为单向通信,PIO芯片选用锁存器74LS373来实现,74LS373的使能信号OE由主机进行统一编址产生,存储控制信号G由主机外部写信号WR反相产生。主机将从机Ⅰ视为外设,主机与从机Ⅰ之间的数据交换通过对PIO口的读写操作来实现,从机Ⅰ直接通过P1口读取数据。主机与从机Ⅰ间数据交换时的通信规程通过主机与从机Ⅰ间连接握手信号STB1和ACK1来实现。主机将STB1和ACK1分别接至P1.0和P11,从机分别接至P3.2和P3.0。 图6主机与从机I信息交换的物理实现如果要进行双向通信,PIO芯片可选用双向数据驱动器74LS245来实现。其输入/输出方向控制可由主机的外部读写信号的或产生,使能信号由主机地址译码信号产生。如果从机Ⅰ的P1口被占用,则也可用另一片PIO芯片以与主机类似的方法连接。 2. 通信协议 PIO通信规程是主机通过查询判断、置位或复位握手联络信号STB1和ACK1来实现的。主机以此掌握PIO接口的操作权属并对其操作权进行分配与管理以及通信中的字节同步,由此确保信息的正确发送与接收。当主机要向从机Ⅰ发送信息时,主机首先要得到对PIO口的操作权,即查询ACK1,然后向PIO口执行写操作,再复位STB1将对PIO口的操作权赋予从机Ⅰ并通知从机Ⅰ取数,最后等待从机Ⅰ的响应信号。从机Ⅰ接到取数通知后首先向主机发响应信号,然后取数,最后释放对PIO口的操作权。主机与从机Ⅰ通过握手信号STB1和ACK1实现了字节同步。实现过程在3中详叙。 PIO通信的用户规约是通过规定命令字来实现的。主机与从机Ⅰ之间以信息包的形式进行数据交换。信息包的第一个字节为命令字节,其后为数据字节。信息包分两种形式,如图7所示:第一种形式的信息包只有一个命令字节,这种信息包只向从机Ⅰ传送操作提示或越限报警命令;另一种形式的信息包包含一个字节的命令及若干字节的数据,这种信息包是向从机Ⅰ传送参数播报命令以及相应参数值。从机Ⅰ接到命令字节后会根据事先约定判断后面是否有数据字节,若有则将后面接收到的字节当作数据处理,否则后面接收到的字节作为下一个命令处理。 命令字节(a) 无数据字节的信息包 命令字节[]数据字节1[]…[]数据字节n(b) 包含数据字节的信息包 图7PIO通信信息包结构 3. 信息交换过程 图8主机与从机I的 信息交换过程主机与从机Ⅰ间通信规程的实现及信息交换过程如图8所示。主机首先检测从机Ⅰ的响应信号ACK1是否为高,判断从机Ⅰ是否释放了对PIO口的操作权。若已释放,主机向PIO口写入命令字节,然后将对PIO口的操作权赋予从机Ⅰ,同时通过置低触发信号STB1向从机Ⅰ发取数通知并等待从机Ⅰ发回响应信号ACK1。检测到从机Ⅰ的响应信号后,置高STB1收回从机Ⅰ对PIO口的操作权,然后主机判断所发命令是否为有数据命令:若为无数据命令,则结束发送;若为有数据命令,则置数据长度,然后再检测从机Ⅰ响应信号ACK1,重复发命令字节的过程,将信息包的所有数据字节发完。 从机Ⅰ接收信息包采用中断方式进行,由主机通过触发信号STB1所发出的取数通知向从机Ⅰ申请中断。从机Ⅰ响应中断后首先置低ACK1向主机发回响应信号,通知主机自己已做好取数准备并取得对PIO口的操作权,然后从P1口读入命令(或数据)字节,随即置高ACK1释放对PIO口的操作权。根据数据事先约定,判断读入的是命令字节还是数据字节:若为命令字节则放入命令缓冲器中并判断是否为有数据命令,若为无数据命令则将数据计数器清零,若为有数据命令则将数据长度置入计数器;若读入的为数据字节则存入数据缓冲区并将数据计数器减一,然后中断返回。 主机对PIO口操作权的管理是通过在向PIO口写入一个字节之前检测从机Ⅰ的响应信号ACK1,写入一个字节后向从机Ⅰ发取数通知STB1,然后等待从机Ⅰ的应答信号ACK1,写入下一个字节前重新检测ACK1等过程实现的。同时也实现了信息交换的字节同步。 在主程序中从机Ⅰ判断数据计数器是否为零。若为零,则检查命令缓冲器是否有命令。若有命令,则执行相应命令。 三、 主机与从机Ⅱ的工作协调与信息交换 主机与从机Ⅱ之间数据传递量较大,故采用共享存储器通信结构进行信息交换。 1. 信息交换的物理实现 图9共享存储器的物理实现如图9所示,系统中共享存储器采用非本质型多端口存储器,它是由普通单端口RAM 6264加上多端口及端口控制器构成。6264的数据端口同时与主机和从机Ⅱ的两个端口74LS245(简称245)相连,两个245的另一端分别与各微机的数据总线相连。245的使能端和输入/输出方向控制端DIR分别由两微机的读写信号及对6264的片选信号译码得到。由此来控制各自对共享存储器的读写。两个245起到了双端口的作用,译码器则起端口控制器的作用,它们共同完成数据口的切换任务。 由四片四2选1数据选择器74LS157(简称157)构成另一个双端口和端口控制器。157的使能端接地,使它一直处于工作状态,数据选择端SELECT与主机P1.2相接。6264的地址、片选、读写等信号与此双端口的输出口相连,两微机各自对6264进行编址产生的13位地址和1位片选以及各自的读写信号接至双端口的两个输入口A和B,同时双端口又具有端口控制器的功能,通过主机置高或置低157的SELECT端来轮流接通两个端口A和B,从而使主机与从机Ⅱ的地址和控制信号分别接通6264的地址A0~A12、读OE、写WE及片选CE1,与前述数据双端口配合完成对6264的访问,6264的另一片选接地。除主机要对SELECT进行控制外,两微机对6264的访问与对其它存储器的访问无异。 端口控制由主机对SELECT进行置位和复位来进行管理,共享存储器操作权的分配与通信中的同步控制由主机与从机Ⅱ间直接相连的握手信号STB2和ACK2来实现。主机将STB2和ACK2分别接至P1.3和P1.4,从机接至P3.1和P3.0。 2 信息交换的逻辑结构 共享存储器通信的逻辑结构采用通信池结构,即整个共享存储器的所有单元均可让每个微机访问,而不是给每个微机划分一个信箱。每个单元的作用都一样,功能单一,作为主机与从机Ⅱ数据交换的中转站。 主机与从机Ⅱ的通信也是以信息包的形式进行,信息包的数据结构及在通信池中的存放格式如图10所示。信息包也分两种形式:一是只有一个命令字节 数据块1 数据块x[]命令字节数据字节1…数据字节m…数据字节1…数据字节n…图10通信池信息包的存放 的信息包;另一种是包含若干数据块的信息包。在通信池中第一个字节为命令字节,后面依次存放若干个数据块。 3. 通信协议 主机根据事先约定好的通信协议对共享存储器的操作权进行统一分配与管理。主机确定共享存储器的操作权属后,由SELECT通知端口控制器接通相应端口,从而接通相应微机访问单端口存储器的通路,并利用握手信号STB2将共享存储器操作权属通知从机Ⅱ。 主机与从机Ⅱ之间的通信也是由主机进行控制与管理的。通信规程与PIO通信一样,也由主机对握手信号置位与复位来实现。而同步方式与PIO通信不同,共享存储器通信采用的是信息包同步而不是字节同步,即在每交换一个信息包之前进行同步。同步过程也是首先查询ACK2,以确定从机Ⅱ是否释放对共享存储器图11主机与从机II 信息交换过程的操作权,然后写入命令与数据。复位SELECT将对共享存储器的操作权赋予从机Ⅱ,同时复位STB2向从机Ⅱ发出取数通知,并等待从机Ⅱ响应信号。实现过程在4中详叙。 共享存储器通信的用户规程也是通过规定命令字来实现的。命令也分两类,即有数据命令和无数据命令。主机在发送有数据命令时写入命令字节后还要写入数据。从机Ⅱ接收信息包时读入有数据命令后还要读入数据。无数据命令的功能是通知从机Ⅱ组织液晶显示控制器进行操作提示或功能转换;有数据命令则是要求从机Ⅱ组织液晶显示控制器更新显示。从机Ⅱ读入命令和数据后根据命令类型执行相应显示功能。 4. 信息交换过程 主机与从机Ⅱ间通信规程的实现及信息交换过程如图11所示。主机首先检测从机Ⅱ的响应信号ACK2是否为高,判断从机Ⅱ是否释放对共享存储器的操作权。若已释放则主机置高P1.2,向端口控制器发出接通端口A指令,然后向共享存储器写入命令字节。若写入的命令是有数据命令则继续写入数据,写完后置低P1.2,通知端口控制器接通端口B,同时置低STB2通知从机Ⅱ取数,并等待从机Ⅱ的响应信号ACK2为低,接到从机Ⅱ的响应信号后置高STB2收回对共享存储器的操作权并结束本次信息交换过程。 从机Ⅱ接收信息时采用查询方式,即查询到有取数通知STB2为低时首先置低ACK2向主机发响应信号,然后从共享存储器中读入命令字节。如果读入的是有数据命令则随后读入数据,再置高ACK2,释放对共享存储器的操作权。最后从机Ⅱ根据命令字节执行相应显示功能。 结束语 仪器的三个微机均采用MCS\ 51单片机,利用其本身丰富的硬件资源,可以使微机间的握手信号、通信信道的设计非常简单。 主机与两从机间采用不同的通信结构,是根据各自信息交换的不同特点确定的。仪器只有主机与各从机进行信息交换,而从机间不进行信息交换,因此主机与从机间采用点点式结构。这样主机不用对两个从机进行寻址,通信过程与通信协议简单。MES 参考文献 1邱公伟,等.实时控制与智能仪表多微机系统的通信技术.北京:清华大学出版社,1996 2何立民.单片机应用系统设计.北京:北京航空航天大学出版社,1990
来源:单片机与嵌入式系统应用   作者:第二炮兵工程学院 陈家照 关正西 姜洪开;航天科技集团四院四十三所 王丽华  2006/2/12 0:00:00
栏目: [ ]

相关阅读

安森美推出新的高功率图腾柱PFC控制器,满足具挑战的能效标准

动态功耗低至60μA/MHz!助力设备超长续航,首选国民技术低功耗MCU!