发明内容
为克服上述现有技术的不足,本发明提供一种计量芯片测试装置的通用接口及其实现方法,使得计量芯片测试装置可以自动识别对应计量芯片所采用的接口与规范,而不需要专门针对某一类型的计量芯片专门设计测试接口,从而计量芯片测试装置可以对不同厂家的计量芯片进行数据访问。
实现上述目的所采用的解决方案为:
一种计量芯片测试装置的通用接口,所述通用接口包括:
微处理器及其外部电路;所述外部电路包括SPI接口、UART接口、IIC接口、GPIO连接口和以太网接口;
所述通用接口一端分别与SPI、UART、IIC、GPIO接口相连接,另一端与对外的总线插座连接;
所述以太网接口与所述微处理器的MAC接口相连接。
一种通用接口的实现方法,所述实现方法包括:
(一)微处理器向SPI、UART、IIC以及GPIO接口分别发出测试信号并遍历所有通讯速率以及寄存器地址,查询是否有返回的应答信号;
(二)若搜索到应答信号,则建立该应答信号的物理层信道,微处理器将信道建立的信息通过以太网接口传输到上位机,并接收上位机下发的数据直至收到中断标志位置位命令;
(三)微处理器中的协议处理函数校验数据完整性,然后通过数据帧的控制码判断该数据帧属于何种接口的数据帧;
(四)微处理器根据数据帧类型控制相关接口的寄存器,实现相关接口的配置和数据读写。
优选的,所述微处理器根据SPI、UART、IIC和GPIO通道数据中是否有中断标志位置位命令来判断是否接收到应答信号。
优选的,所述信道建立的信息包括对应的端口类型和匹配的通讯速率。
与现有技术相比,本发明具有以下有益效果:
第一,计量芯片测试装置可与不同厂家的计量芯片进行数据交互,而无需针对某一个厂家计量芯片单独设计物理接口,增加了设备应用的灵活性。
第二,可自动识别所接入的计量芯片接口类型,并自动配置物理层通道,使用者无需关心物理层通道的具体配置信息。
第三,可通过上位机软件灵活组态计量芯片通讯规范类型,当接入规约库以外的厂家计量芯片时,通过修改上位机软件规约库的方法即可达到通讯目的,而无需对计量芯片测试装置的固件进行升级,增加了扩展灵活性。
第四,本发明设计简单、可移植性强的特点,可应用于其他类型芯片的通用数据交互,填补了业内对于芯片级物理接口转换的技术空白。
具体实施方式
下面结合附图对本发明的具体实施方式做进一步的详细说明。
1).配置网络参数,初始化TCP/UDP协议,初始化接收完成标记FLAG;
2).上位机使用网络通道对数据进行对应的协议编码,并发送给MCU;
3).收到数据后,在接收中断标志位FLAG;
4).协议处理函数先校验数据完整性,然后通过数据帧的控制码判断该数据帧属于何种接口的数据帧;
5).MCU根据数据帧类型控制MCU相关接口的寄存器,实现相关接口的配置和数据读写。
1帧格式
帧是传送信息的基本单元,帧格式如表1所示。
表1 数据帧格式
数据域1 |
DATA1 |
数据域2 |
DATA2 |
数据域3 |
DATA3 |
数据域4 |
DATA4 |
校验码 |
CS |
结束符 |
16H |
1.1帧起始符68H(FRAME_START)
标识一帧数据的开始,其值固定为68H=01101000B
1.2控制码C(FRAME_CONTROL)
控制码格式如下:
表2 控制码格式
a)传送方向D7(DIRE)
0:表示上位机发送给接口板的数据(PC2BOARD)
1:表示接口板返回给上位机的数据(BOARD2PC)
b)从站应答标志D6(ANS_FLAG)
0:上位机数据发送的数据无效,未定义,总之无法识别(ANS_ERROR)
1:接口板正确应答上位机数据(ANS_RIGHT)
注:对于上位机发出的数据,此位为1
c)操作模式D5:D3(OP_MODE)
中断帧:中断帧表明一帧异常的数据,接口板需要发出警告,可能由于检测芯片的中断引起。具体中断原因,在数据载荷中表明。
心跳帧:上位机定期发送心跳帧,接口板收到心跳帧进行心跳帧应答,从而保证数据链路层通讯正常。如果上位机收到异常应答帧,或者未收到应答帧,表明通讯已经中断。
电源帧:电源帧用于设置测试板电源,电源数据由DATA1,2,3,4提供。
设置帧:设置帧用于配置各个接口的配置参数,例如IO口的工作模式,SPI的极性相位等配置哪个接口由D1:D0位决定。
SPI读写:用于读取或者写入SPI数据,数据长度由D1:D0位决定,最长四个字节,最短1个字节。
UART读写:同SPI读写
IIC读写:同SPI读写
GPIO读写:同SPI读写
d)读写位D2(R_W)
读写位只对操作模式中的接口读写有效,对于中断帧,心跳帧,电源帧,设置帧,读写位固定为写
0:读信号帧:对于上位机,读信号载荷为NULL,对于接口板,读信号载荷为返回数据
1:写信号帧:对于上位机,读信号载荷为需要设置的数据,对于接口板,写信号载荷为NULL,数据长度(LENGTH)
数据长度规定读写信号的数据长度,或者设置信号时进行设置的接口
1.3数据域(FRAME_DATA)
数据域1,2,3,4表示每次通讯帧携带的有效数据。规定固定为4字节,各个数据域的具体数据表示的意义,根据芯片手册进行灵活配置。
1.4校验码(CS)
从起始符开始到校验码之前的总计6字节的模256的和,即各字节二进制算术和,不计超过256的溢出值。
1.5结束符(END_SYMBOL)(16H)
标识一帧信息的结束,其值为16H=00010110B
1.6操作模式详细说明
a)中断帧
当操作模式字D5:D3为000时,此帧为中断帧。
中断帧由接口板发送给上位机,上位机不需要回复。
引起中断帧的原因,由D2:D0决定,数据域可以给出更加详细的信息,其规定见下表3。
表3 中断帧原因说明
D2:D0 |
|
000 |
系统内部错误1 |
001 |
系统内部错误2 |
010 |
系统内部错误3 |
011 |
系统内部错误4 |
100 |
接口板IO中断1 |
101 |
接口板IO中断2 |
110 |
接口板IO中断3 |
111 |
接口板IO中断4 |
例如68 C4 00 00 00 00 2C 16
表示接口板发出一个IO中断1
b)心跳帧
心跳帧由上位机下发给接口板,接口板返回应答帧。以保证通讯链路正常。心跳帧发送频率由上位机程序根据具体情况灵活掌握。对于心跳帧,D2:D0,还有数据域的数据均设置为0。
例如发:68 48 00 00 00 00 B0 16
收:68 C8 00 00 00 00 30 16
c)电源帧
电源帧用于设置或读取测试板芯片的供电电压,数据长度D1:D0固定为01,表示数据长度为2字节。
设置电压值为实际值扩大1000倍的无符号16位整形数,DATA1位高字节,DATA2位低字节。
例如1设置电源板电压为5.678V,需要在DATA1,DATA2填入5678的16进制数据162E
发:68 55 16 2E 00 00 01 16
收:68 D5 00 00 00 00 3D 16
例如2读电源板电压:
发:68 51 00 00 00 00 B9 16
收:68 D1 16 2E 00 00 7D 16
d)设置帧
设置帧规定各个接口的配置说明,从DATA1开始规定。
对于SPI设置,DATA1规定如下:
表4 SPI设置DATA1规定
对于GPIO设置,DATA1和DATA2规定如下:
表5 GPIO设置DATA规定
对于每一个IO口,可以通过[1:0]两个位设置为4种模式:
表6 IO的4种模式
01 |
输入(上拉) |
10 |
输出(上拉) |
11 |
中断(下降沿中断) |
对于其他接口的设置暂时不规定
例如设置SPI接口:波特率1M,CPOL_L,CPHA_1,8位SPI长度,LSBFIRST。
发:68 5D 15 00 00 00 DA 16
收:68 DD 00 00 00 00 45 16
e)SPI读写
SPI读写每一帧最多读写4字节,依次将数据放入DATA1-DATA4中。
例如对SPI接口写入4个字节:7D AA 23 97
发:68 67 7D AA 23 97 B0 16
收:68 E7 00 00 00 00 4F 16
f)GPIO读写
GPIO读写每次设置一个管脚,DATA1 D7:D5决定管脚序号,如下:
表7 GPIO读写管脚设置
例如设置IO2管脚为中断输入
发:68 7C 5F 00 00 00 43 16
收:68 FC 00 00 00 00 64 16。
最后应当说明的是:以上实施例仅用于说明本申请的技术方案而非对其保护范围的限制,尽管参照上述实施例对本申请进行了详细的说明,所属领域的普通技术人员应当理解:本领域技术人员阅读本申请后依然可对申请的具体实施方式进行种种变更、修改或者等同替换,但这些变更、修改或者等同替换,均在申请待批的权利要求保护范围之内。