实施例四
图5示出了本发明实施例四提供的串口自检方法的实现的流程,详述如下:
在S401中,获取串口数据,并生成自检命令;
在S402中,根据自检命令获取串口电平标准;
在S403中,将串口电平标准转换为自检数据;
在S404中,将自检数据与串口数据对比,输出检测结果;
在S405中,根据检测结果进行报警。
在本发明实施例中,结合图8结构,报警单元26在检测结果为“错误”的检测结果时可以发出报警信号,以供用户及时进行维护处理。该报警信号也可以通过显示或声音对用户进行提示,例如发光二极管、数码管或者液晶显示屏等显示装置或扬声器或者蜂鸣器等音频装置。
当然,可以将实施例二、实施例三同时或分别与实施例四结合,实现对于串口电平标准的收发指示、检测结果的存储与检测结果报警的功能组合。
本发明实施例在系统上电时或系统运行中,通过CPU生成自检命令,并控制执行单元从与第一串口控制器11连接的第一串口驱动电路12的输出端获取串口电平标准,转换为自检数据后与串口数据进行对比,输出检测结果,进而实现对第一串口控制器11以及第一串口驱动电路12的串口检测,该串口自检方法故障定位快,缩短维修时间,检测结果可靠性高,提高了系统的自诊断能力,便于维护人员及时根据检测结果进行故障追溯简化维修。
图6示出了本发明实施例提供的串口自检电路的结构,为了便于说明,仅示出了与本发明相关的部分。
作为本发明一实施例,该串口自检电路2第一输入端与系统中的CPU连接,该串口自检电路2第二输入端与串口功能电路1的第二输出端Port2连接,该串口功能电路1的第二输出端Port2为第一串口驱动电路12与串口对外接口13的连接端,即第一串口驱动电路12的输出端,用于自动对串口功能电路第二输出端Port2输出的串口电平标准进行串口检测,进而实现对第一串口控制器11以及第一串口驱动电路12的串口检测,该串口电平标准为CPU输出串口数据及指令经过串口功能电路中的第一串口控制器11和第一串口驱动电路12转换得到的,该串口自检电路2包括:
执行单元23,该执行单元23的控制端与CPU连接,执行单元23的输入端为串口自检电路2的第二输入端与串口功能电路1的第二输出端Port2连接,用于根据自检命令形成的自检数据链路从串口功能电路的第二输出端Port2获取串口电平标准;
第二串口控制器21和第二串口驱动电路22,所述第二串口驱动电路22的输入端与所述执行单元23的输出端连接,所述第二串口驱动电路22的输出端与所述第二串口控制器21的输入端连接,所述第二串口控制器21的输出端与所述CPU连接,用于将所述串口电平标准转换为自检数据,以供所述CPU将所述自检数据与所述串口数据对比,并通过所述CPU输出检测结果。
在本发明实施例中,CPU可以从串口数据输出端获取串口数据,也可以从串口控制器输入端获取串口数据,并在系统上电时生成自检命令。
执行单元23接收到CPU发出的自检命令后,根据该自检命令从串口功能电路的第二输出端Port2获取串口电平标准,该串口电平标准为串口数据经串口功能电路1中第一串口控制器11封装、串行化,并通过第一串口驱动电路12转换后向串口对外接口13输出的串口电平标准。.
第二串口驱动电路22和第二串口控制器21将串口电平标准逆向转换为CPU可识别的并行数据格式,以供CPU进行进一步的数据处理。
CPU将自检数据与从第一串口控制器11获取的串口数据进行对比,若两个数据一致,则输出表示“正确”的检测结果;若两个数据不一致,则输出表示“错误”的检测结果。
本发明实施例在系统上电时或系统运行中,通过CPU生成自检命令,并控制执行单元23从与第一串口控制器11连接的第一串口驱动电路12的输出端获取串口电平标准,转换为自检数据后与串口数据进行对比,输出检测结果,进而实现对第一串口控制器11以及第二串口驱动电路22的串口检测,该串口自检方法故障定位快,缩短维修时间,检测结果可靠性高,提高了系统的自诊断能力,便于维护人员及时根据检测结果进行故障追溯简化维修。
图7示出了本发明实施例提供的串口自检电路中执行单元23的示例电路结构,为了便于说明,仅示出了与本发明相关的部分。
作为本发明一实施例,执行单元23根据CPU发出的自检命令,完成串口自检电路2与被检测串口功能电路1之间的连接,使两部分电路进行连接或断开,具体包括:
驱动模块221,该驱动模块221的驱动输入端为执行单元23的控制端,该驱动输入端根据驱动模块221的实际应用需要,可以为一个也可以为多个,用于根据自检命令产生驱动信号;
可控开关模块222,该可控开关模块222的控制端与驱动模块221的驱动输出端连接,可控开关模块222的输入端为执行单元23的输入端,可控开关模块222的输出端为执行单元23的输出端,用于根据驱动信号实现导通或截止,以在导通时获取串口电平标准;
值得说明的是,对于可控开关模块222的驱动控制,可以根据实际需要调节驱动模块221驱动输入端以及驱动输出端的数量,以适应可控开关模块222的应用需求,而不限定为一个端口,同样,可控开关模块222的控制端、输入端以及输出端的数量也不限定,可根据应用需求调节数量。
作为本发明一优选实施例,可控开关模块222可以采用继电器PLY实现物理连接,也可采用开关半导体器件,例如三态门实现三态连接功能。
在本发明实施例中,当可控开关模块222采用继电器实现时,继电器PLY的双电源端为可控开关模块222的双控制端,继电器的双常开端为可控开关模块222的双输入端,继电器的双常闭端为可控开关模块222的双输出端。而对于开关半导体器件的驱动,驱动模块221可采用单端驱动控制,所述开关半导体器件的控制端为所述可控开关模块的控制端,所述开关半导体器件的输入端为所述可控开关模块的输入端,所述开关半导体器件的输出端为所述可控开关模块的输出端。
作为本发明一优选实施例,该驱动模块221包括:
驱动芯片U1、电阻R3、电阻R4、电容C1、电容C2、电容C3、稳压二极管D1;
驱动芯片U1的第一电源端Vcc1和第二电源端Vcc2均与电源连接,驱动芯片U1的第一电源端Vcc1和第二电源端Vcc2还同时与电容C1和电容C2的一端连接,电容C1和电容C2的另一端接地,驱动芯片U1的接地端GND接地,驱动芯片U1的第一控制输入端(Pin2)、第二控制输入端(Pin7)为驱动模块221的双驱动输入端,驱动芯片U1的第一使能端(Pin1)和第二使能端(Pin9)连接后通过电容C3接地,驱动芯片U1的第一使能端(Pin1)还同时与电阻R3、电阻R4的一端以及稳压二极管D1的阳极连接,电阻R3、电阻R4的另一端以及稳压二极管D1的阴极均与电源连接,驱动芯片U1的第一控制输出端(Pin3)、第二控制输出端(Pin6)为驱动模块221的双驱动输出端。
作为本发明一实施例,本发明实施例中的驱动芯片U1采用L293DNEE4型驱动芯片。
在本发明实施例中,系统正常工作时,串口功能电路1与外部串口设备14相连,进行串口通讯,实现信息传输,串口自检电路2可以在系统启动时或系统运行过程中进行自检,具体为:
在系统启动时,CPU获取串口数据,执行自检程序,生成自检命令,并将该自检命令Control_A、Control_B发送给执行单元23,驱动模块221根据自检命令对可控开关模块222进行驱动,可控开关模块222根据驱动信号的控制实现导通或截止,使串口功能电路1的串口接收端COM1_RXD_CN与第二串口驱动电路22的串口发送端COM2_TXD_CN进行连接、串口功能电路1的串口发送端COM1_TXD_CN与第二串口驱动电路22的串口接收端COM2_RXD_CN进行连接,进而实现串口功能电路1与串口自检电路2的连接,以从串口功能电路1获取自检数据,该获取方式可以由串口功能电路1向串口自检电路2发送发送信号,实现数据通信,也可以由串口自检电路2向串口功能电路1发送接收信号,实现一收一发的数据通信。
在系统运行过程中,可利用任务执行的空闲时间进行自检,其自检过程与系统启动时相同,不在赘述,为了不引起误动作,自检数据将使用与外部通讯不同的波特率进行自检,即使外部串口设备14接收到自检数据,也认为是无效数据,不会引起误动作;自检完成后,串口自检电路2将与串口功能电路1断开,对功能执行无任何影响。
本发明实施例针对的串口可以是RS232、RS422、RS485串口标准,也可推广至其他通讯协议接口,如本地区域网络(Local Area Network,LAN)接口、控制器局域网(Controller Area Network,CAN)接口、打印终端(line print terminal,LPT)接口等。
图8示出了本发明实施例提供的串口自检电路的一优选结构,为了便于说明,仅示出了与本发明相关的部分。
作为本发明一实施例,该串口自检电路2还可以包括一收发指示单元24,该收发指示单元24的输入端与执行单元23的输出端连接,用于根据串口电平标准发出收发指示;
在本发明实施例中,收发指示单元24在接收或获取到串口电平标准后,发出收发指示,以便用户可以及时了解数据传输是否通畅,方便判断数据传输到此,缩小故障查找范围,快速定位故障。该收发指示可以通过显示装置,例如发光二极管、数码管或者液晶显示屏等,进行视觉上的指示,也可以通过音频装置,例如扬声器或者蜂鸣器等,进行声音上的指示。
作为本发明一实施例,该串口自检电路2还可以包括一存储单元25,该存储单元25的输入端与CPU连接,用于将检测结果进行存储;
在本发明实施例中,可以将CPU输出的检测结果存储在存储单元25中,以便于用户定时调用、查看检测结果,方便使用外部读取设备读取存储单元25中存储的检测结果,快速查找到发生故障的单元,以方便进行问题追溯。存储单元25还可以上报服务器,由服务器通知管理人员根据检测结果的严重程度及时进行处理,用户也可以根据对一段时期的检测结果进行分析了解串口功能电路的运行情况。该存储单元25也可以复用系统中的存储设备。
该存储电路,可存储不同功能电路的多次自检结果,以对主要功能单元进行自检结果记录,实现完整记录多次开机信息。其存储数据格式见表一:
表一
其中,四个字节为一帧,记录一个功能电路(串口自检电路)的状态信息(检测结果),以连续的四个FF表示结束,例如表二是检测的硬件对象及对应的设备ID号和内容:
表二
|
ID |
DATA1+DATA2 |
Flag |
CPU |
01 |
CPU主频 |
01(OK)/FF(Fail) |
MEMORY |
02 |
内存容量大小 |
01(OK)/FF(Fail) |
HARD DISK |
03 |
硬盘的容量大小 |
01(OK)/FF(Fail) |
COM |
04 |
自环测试 |
01(OK)/FF(Fail) |
Fai1_message |
FA |
出错的时间信息 |
|
作为本发明一实施例,该存储单元25可采用利于CPU方便读取的I2CEEPROM或flash等,可定时或按需,将检测结果通过网络传输至上位机或服务器,实现主控室上位机对设备完好性掌控,便于任务下达与分配,设备损坏维修时,便于追溯与定位。
作为本发明一实施例,该串口自检电路2还可以包括一报警单元26,该报警单元26的输入端与CPU连接,用于根据检测结果进行报警;
在本发明实施例中,报警单元26在检测结果为“错误”的检测结果时可以发出报警信号,以供用户及时进行维护处理。该报警信号也可以通过显示或声音对用户进行提示,例如发光二极管、数码管或者液晶显示屏等显示装置或扬声器或者蜂鸣器等音频装置。
本发明实施例的另一目的在于提供一种采用上述串口自检电路的串口自检装置。
本发明实施例在系统上电时或系统运行中,通过CPU生成自检命令,并控制执行单元23从与第一串口控制器11连接的第一串口驱动电路12的输出端获取串口电平标准,转换为自检数据后与串口数据进行对比,输出检测结果,进而实现对第一串口控制器11以及第一串口驱动电路12的串口检测,该串口自检方法故障定位快,缩短维修时间,检测结果可靠性高,提高了系统的自诊断能力,便于维护人员及时根据检测结果进行故障追溯简化维修。
以上仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。