CN109976230A - 一种物联网智能设备 - Google Patents
一种物联网智能设备 Download PDFInfo
- Publication number
- CN109976230A CN109976230A CN201910324458.5A CN201910324458A CN109976230A CN 109976230 A CN109976230 A CN 109976230A CN 201910324458 A CN201910324458 A CN 201910324458A CN 109976230 A CN109976230 A CN 109976230A
- Authority
- CN
- China
- Prior art keywords
- chip
- control unit
- micro control
- data
- judge whether
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
Abstract
本发明涉及物联网技术领域,具体公开一种物联网智能设备,包括芯片、第一微控单元和第二微控单元,芯片包括安全模块、协议解析模块、接口控制模块和接口通信模块;第一微控单元通过第一GPIO接口与接口控制模块连接并通过SC_SPI协议与接口通信模块进行数据交互;第二微控单元,第二微控单元通过第二GPIO接口与接口控制模块连接并通过SC_I2C协议与接口通信模块进行数据交互;当第一微控单元和第二微控单元均向芯片发送数据时,芯片通过并发协议与两微控单元进行数据交互。本发明提供的物联网智能设备,支持I2C单接口通信或者SPI单接口通信,也支持I2C接口和SPI接口的双接口并发通信,简化了物联网智能设备的开发难度,节约开发成本。
Description
技术领域
本发明涉及物联网技术领域,尤其涉及一种物联网智能设备。
背景技术
现有的安全芯片只提供7816接口,而大多数的物联网智能设备中的微控单元是没有7816接口的,要用软件模拟7816接口,这极大地增加了开发难度和延长了开发周期。
发明内容
本发明的一个目的在于,提供一种物联网智能设备及通信方,支持I2C单接口通信或者SPI单接口通信,也支持I2C接口和SPI接口的双接口并发通信,简化了物联网智能设备的开发难度,节约开发成本。
为达以上目的,本发明提供一种物联网智能设备,包括芯片、第一微控单元和第二微控单元,
所述芯片包括安全模块、协议解析模块、接口控制模块和接口通信模块;所述第一微控单元通过第一GPIO接口与所述接口控制模块连接并通过SC_SPI协议与所述接口通信模块进行数据交互;第二微控单元,所述第二微控单元通过第二GPIO接口与所述接口控制模块连接并通过SC_I2C协议与所述接口通信模块进行数据交互;
当所述第一微控单元和第二微控单元均向所述芯片发送数据时,所述芯片通过并发协议与两微控单元进行数据交互。
优选地,所并发协议包括以下步骤:
芯片对两所述GPIO接口的闲忙状态进行控制;
微控单元根据对应的GPIO接口的闲忙状态向所述芯片发送数据;
当两所述微控单元均向所述芯片发送数据时,芯片对先接收的数据对应的GPIO接口进行先中断处理,并将另一所述微控单元对应的GPIO接口的状态置为忙。
优选地,所述微控单元根据对应的GPIO接口的闲忙状态向所述芯片发送数据,包括:
微控单元查询相应的GPIO接口的闲忙状态:若GPIO接口的状态为空闲,所述微控单元向芯片发送数据;若GPIO接口的状态为忙,所述微控单元待相应的GPIO接口空闲后再向芯片发送数据。
优选地,所述当两所述微控单元均向所述芯片发送数据时,芯片对先接收的数据进行中断处理,并将另一所述微控单元对应的GPIO接口的状态置为忙之后,还包括:
芯片对后中断的另一所述微控单元发送的数据进行丢弃。
优选地,所述芯片对后中断的另一所述微控单元发送的数据进行丢弃,包括:
后中断的另一所述微控单元待相应的GPIO接口空闲后重新向芯片发送被丢弃的数据。
优选地,所述并发协议还包括:
当所述芯片执行DES加解密和NVM操作时,关闭所有中断,将两所述GPIO接口的状态置为忙,并对中断后发来的数据进行丢弃。
优选地,所述SC_SPI协议包括SC_SPI的复位方法,所述SC_SPI的复位方法包括:
在微控单元端:
向芯片发送复位命令;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
向芯片发送读取ATR命令;
判断是否收到芯片的ATR指令信息;若是,
向芯片发送获取码;
判断数据长度是否正确以及是否接收完成;若是,
向芯片发送完成码;
判断协议控制字节是否正确;若是,
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
向微控单元发送协议控制字节,并开始做复位操作;
判断是否收到微控单元的读取ATR指令;若是,
向微控单元返回ATR命令信息;
判断是否收到获取码;若是,
发送分段数据,直到数据发送完成;
进入复位阶段。
优选地,所述SC_SPI协议包括SC_SPI的APDU命令交互方法,所述SC_SPI的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;若是,
根据从设备接收能力,分段发送APDU命令,多次发送直到数据发送完成;
判断是否收到芯片确认协议控制字节;若是,
判断是否收到芯片状态码;若否,
判断是否能向芯片读取响应数据以及状态字;若是,
向芯片发送确认协议控制字节;
判断芯片返回的是响应数据还是状态状态;若返回的是状态,向芯片发送确认码并判断是否收到芯片忙的状态字;若返回的是数据,
向芯片发送确认码并告诉芯片已经准备好收取数据;
判断收到的数据长度是否正确;若是,
向芯片发送确认码并向芯片索要下一段数据;
判断数据是否接收完成;若是,
向芯片发送确认码告诉芯片已接收完成;
判断收到的芯片的协议控制字节是否正确;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
向微控单元发送APDU命令头确认协议控制字节;
判断数据长度是否正确;若是,
发送确认协议控制字节;
判断数据是否接收完成;若是,
发送确认协议控制字节;
判断收到的APDU命令长度与数据长度是否一致;若否,向微控单元发送状态码;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
判断是否收到微控单元读取响应数据以及状态字命令;若是,
判断是否处理完APDU命令;若是,
向微控单元发送确认协议控制字节;
判断是否收到微控单元的确认码;若是,
发送分段数据,多次发送直到数据发送完成;
进入APDU命令交互阶段。
优选地,所述SC_I2C协议包括SC_I2C的复位方法,所述SC_I2C的复位方法包括:
在微控单元端:
向芯片发送复位命令;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
读取芯片返回的ATR信息;
读取芯片返回的ATR值;
判断协议控制字节是否正确;
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
进行复位并配置好ATR参数;
发送协议控制字节和将要返回ATR数据长度;
发送确认协议控制字节和ATR数据字节;
进入复位阶段。
优选地,所述SC_I2C协议包括SC_I2C的APDU命令交互方法,所述SC_I2C的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;若是,
向芯片发送APDU命令;
判断是否收到芯片状态码;若否,
判断是否收到芯片的APDU命令确认协议控制字节;若是,
判断是否能向芯片读取响应数据以及状态字;若是,
判断芯片返回的是响应数据还是状态字或状态;若为数据,
判断收到芯片的协议控制字节是否正确;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
等待微控单元读取APDU命令头协议控制字节;
判断收到的APDU命令长度与数据长度是否一致:若否,向微控单元发送状态码;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
等待微控单元读取APDU命令确认协议控制字节;
等待微控单元读取APDU响应数据及状态字协议控制字节和响应的数据长度;
判断是否处理完APDU命令:若否,等待微控单元读取状态协议控制字节及状态;若是,
等待微控单元读取数据响应数据以及状态字;
进入APDU命令交互阶段。
本发明的有益效果在于:提供一种物联网智能设备,支持I2C单接口通信或者SPI单接口通信,也支持I2C接口和SPI接口的双接口并发通信,简化了物联网智能设备的开发难度,节约开发成本。
附图说明
为了更清楚地说明本实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例提供的物联网智能设备的结构框图;
图2是本发明实施例提供的SC_SPI的复位方法的流程图;
图3是本发明实施例提供的SC_SPI的APDU命令交互方法的流程图;
图4是本发明实施例提供的SC_I2C的复位方法的流程图;
图5是本发明实施例提供的SC_I2C的APDU命令交互方法的流程图。
图中:
1、芯片;
2、第一微控单元;
3、第二微控单元。。
具体实施方式
为使得本发明的目的、特征、优点能够更加的明显和易懂,下面将结合本实施例中的附图,对本实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本实施例提供一种物联网智能设备,适用于物联网领域中的应用场景,支持I2C单接口通信或者SPI单接口通信,也支持I2C接口和SPI接口的双接口并发通信,简化了物联网智能设备的开发难度,节约开发成本,所述物联网智能设备,通过软件和/或硬件实现。
图1是本实施例一提供的物联网智能设备的结构框图。
参见图1,所述物联网智能设备包括芯片1、第一微控单元2和第二微控单元3。所述芯片1包括安全模块、协议解析模块、接口控制模块和接口通信模块;所述第一微控单元2通过第一GPIO接口与所述接口控制模块连接并通过SC_SPI协议与所述接口通信模块进行数据交互;所述第二微控单元3通过第二GPIO接口与所述接口控制模块连接并通过SC_I2C协议与所述接口通信模块进行数据交互;当所述第一微控单元2和第二微控单元3均向所述芯片发送数据时,所述芯片1通过并发协议与两微控单元进行数据交互。
具体地,GPIO(英语:General-purpose input/output),通用型之输入输出的简称,功能类似8051的P0—P3,其接脚可以供使用者由程控自由使用。
优选地,安全模块提供身份认证、数据保护和保证通信安全等功能。用于执行基于高安全PKI加解密协处理器的一系列加密算法。
所述加密算法可以包括:①RSA、ECC和SM2算法,②单DES(56bit)、3DES 2-key或3-key(112bit或168bit)和ECB/CBC模式的加解密以及CBC-MAC计算;③基于安全AES协处理器的128bit、192bit、256bit密钥的AES、CBC、ECB对称加解密算法、CBC-MAC算法、HASH(MD5、RIPEMD160、SHA1、SHA224、SHA256、SHA384、SHA512)算法、HMAC(MD5、RIPEMD160、SHA1、SHA224、SHA256、SHA384、SHA512)算法;④基于安全SM1协处理器的SM1对称算法、基于安全SM3协处理器的SM3摘要算法和基于安全SM4协处理器的SM4对称算法等。
具体地,PKI是Public Key Infrastructure的首字母缩写,中文是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。ECC中文是椭圆加密算法,是一种公钥加密体制,其数学基础是利用椭圆曲线上的有理点构成Abel加法群上椭圆离散对数的计算困难性。SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦资料处理标准(FIPS),并授权在非密级政府通信中使用,随后该算法在国际上广泛流传开来。ECB(Electronic Codebook,电码本)模式是分组密码的一种最基本的工作模式。在该模式下,待处理信息被分为大小合适的分组,然后分别对每一分组独立进行加密或解密处理。CBC,中文加密块链模式,是对称加密模式的一种。CBC-MAC是基于IEEE 802.1x认证的加密技术,以AES(Advanced Encryption Standard)为核心算法,采用CBC-MAC加密模式,具有分组序号的初始向量。Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。HMAC是密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出。
本实施例中,第一GPIO接口为SPI接口,第二GPIO接口为I2C接口。具体地,SPI是串行外设接口(Serial Peripheral Interface)的缩写。SPI,是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便。I2C总线是由Philips公司开发的一种简单、双向二线制同步串行总线。它只需要两根线即可在连接于总线上的器件之间传送信息。
协议解析模块用于解析SPI接口和I2C接口收到的APDU命令。协议解析模块包括20个逻辑通道,保证一个基本逻辑通道打开并不被关闭,本实施例中,协议解析模块有三个基本逻辑通道始终打开,不被关闭,这样用户就不需要关心发的指令数据内容。具体地,APDU:ApplicationProtocolDataUnit--应用协议数据单元。协议数据单元PDU(ProtocolDataUnit)是指对等层次之间传递的数据单位。协议数据单元(ProtocolDataUnit)物理层的PDU是数据位(bit),数据链路层的PDU是数据帧(frame),网络层的PDU是数据包(packet),传输层的PDU是数据段(segment),其他更高层次的PDU是数据(data)。
接口控制模块用于控制GPIO接口的状态,即控制GPIO接口的输出电平高低,微控单元根据GPIO口的状态,来与芯片通信。
接口通信模块包括I2C和SPI接口,I2C是软实现,最高支持100kbit/s,支持从模式,一次可接收和发送数据长度261个字节;硬件SPI,从模式,Mode 0(CPOL=0,CPHA=0),最高支持2Mbit,一次可接收和发送数据长度16个字节。接口通信模块还实现了SC_I2C协议和SC_SPI协议,在具体的APDU阶段和复位阶段,微控单元通过SC_SPI协议和SC_I2C协议与芯片通信。
所并发协议包括以下步骤:
S10:芯片对两所述GPIO接口的闲忙状态进行控制;优选地,当GPIO接口输出为1代表忙,当GPIO接口输出为0代表空闲;
S20:微控单元根据对应的GPIO接口的闲忙状态向所述芯片发送数据;
优选地,当GPIO接口输出为0时,相应的微控单元才向芯片发送数据;可以理解的是,若只有SPI接口与芯片建立通信,则适用SC_SPI协议;若只有I2C与芯片建立通信,则适用SC_I2C协议。
具体地,微控单元查询相应的GPIO接口的闲忙状态:若GPIO接口的状态为空闲,所述微控单元向芯片发送数据;若GPIO接口的状态为忙,所述微控单元待相应的GPIO接口空闲后再向芯片发送数据。
S30:当两所述微控单元均向所述芯片发送数据时,芯片对先接收的数据对应的GPIO接口进行先中断处理,并将另一所述微控单元对应的GPIO接口的状态置为忙。
S40:芯片对后中断的另一所述微控单元发送的数据进行丢弃。
进一步地,后中断的另一所述微控单元待相应的GPIO接口空闲后重新向芯片发送被丢弃的数据。
于本实施例中,两个GPIO接口处理的命令涉及到事务时,中间不能穿插另一个接口的命令,平台对应用限制,不允许出现跨指令的事务操作。
优选地,当所述芯片执行DES加解密和NVM操作时,关闭所有中断,将两所述GPIO接口的状态置为忙,并对中断后发来的数据进行丢弃。具体地,NVM,英文Non-volatilememory,非易失存储器,具有非易失、按字节存取、存储密度高、低能耗、读写性能接近DRAM,但读写速度不对称,寿命有限。
优选地,通过改进和借鉴逻辑通道处理,本实施例提供的物联网智能设备可以将I2C接口和SPI接口收到的命令并行处理。
可以理解的是,当GPIO接口与芯片建立通信主要需要进行复位操作和进行命令交互,因此,复位方法和APDU命令交互方法相当重要。
具体地,ATR也叫复位应答,是一个字节序列,这些字节是由卡作为对复位命令的响应发送给读卡器的。
本实施例中,所述SC_SPI协议包括SC_SPI的复位方法,参见图2,所述SC_SPI的复位方法包括:
在微控单元端:
向芯片发送复位命令;优选地,PCB的值为1FH,数据长度LEN为0000H;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
向芯片发送读取ATR命令;优选地,PCB的值为2FH,数据长度LEN为0000H;
判断是否收到芯片的ATR指令信息;若是,
向芯片发送获取码;优选地,获取码为01H;
判断数据长度是否正确以及是否接收完成;优选地,数据长度为16字节;若是,
向芯片发送完成码;
判断协议控制字节是否正确;优选地,协议控制字节为连续的2Fh和01h,若是,
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
向微控单元发送协议控制字节,并开始做复位操作;优选地,协议控制字节为PCB=E0H;
判断是否收到微控单元的读取ATR指令;若是,
向微控单元返回ATR命令信息;优选地,返回PCB值为D0H和数据长度LEN为(data+1);
判断是否收到获取码;优选地,获取码为01H;若是,
发送分段数据,直到数据发送完成;
进入复位阶段。
本实施例中,所述SC_SPI协议包括SC_SPI的APDU命令交互方法,参见图3,所述SC_SPI的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;优选地,向芯片发送APDU命令头PCB=3FH以及LEN,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;优选地,头协议控制字节为C0H;若是,
根据从设备接收能力,分段发送APDU命令,多次发送直到数据发送完成;
判断是否收到芯片确认协议控制字节;优选地,确认协议控制字节为01H;若是,
判断是否收到芯片状态码;若否,
判断是否能向芯片读取响应数据以及状态字;若是,
向芯片发送确认协议控制字节;优选地,发送一字节的PCB(值为2Fh)和两字节的长度(值为0000h);
判断芯片返回的是响应数据还是状态状态;若返回的是状态,向芯片发送确认码并判断是否收到芯片忙的状态字;优选地,确认码为01H;若返回的是数据,
向芯片发送确认码并告诉芯片已经准备好收取数据;优选地,确认码为01H;
判断收到的数据长度是否正确;优选地,判断是否收到16字节的数据;若是,
向芯片发送确认码并向芯片索要下一段数据;优选地,向芯片发送确认码01H告诉芯片已经收到16字节的数据,芯片可以继续发送下一段数据;
判断数据是否接收完成;若是,
向芯片发送确认码告诉芯片已接收完成;优选地,确认码为01H;
判断收到的芯片的协议控制字节是否正确;优选地,判断收到芯片的协议控制字节是否为连续的2FH和01H;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
向微控单元发送APDU命令头确认协议控制字节;优选地,发送PCB=C0H;
判断数据长度是否正确;优选地,判断是否收到16字节的数据;若是,
发送确认协议控制字节;优选地,发送PCB=01H;
判断数据是否接收完成;若是,
发送确认协议控制字节;优选地,发送PCB=01H;
判断收到的APDU命令长度与数据长度是否一致;优选地,判断APDU长度与LEN是否匹配;若否,向微控单元发送状态码;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
判断是否收到微控单元读取响应数据以及状态字命令;若是,
判断是否处理完APDU命令;若是,
向微控单元发送确认协议控制字节;优选地,发送PCB值为D0H以及两字节长度(返回的数据长度加上1字节确认码);
判断是否收到微控单元的确认码;优选地,确认码为01H;若是,
发送分段数据,多次发送直到数据发送完成;
进入APDU命令交互阶段。
本实施例中,所述SC_I2C协议包括SC_I2C的复位方法,参见图4,所述SC_I2C的复位方法包括:
在微控单元端:
向芯片发送复位命令;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
读取芯片返回的ATR信息;
读取芯片返回的ATR值;
判断协议控制字节是否正确;优选地,判断协议控制字节是否为连续的2Fh和01h;
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
进行复位并配置好ATR参数;
发送协议控制字节和将要返回ATR数据长度;优选地,发送协议控制字节(2Fh)和将要返回ATR数据长度;
发送确认协议控制字节和ATR数据字节;优选地,发送确认协议控制字节(01h)和ATR数据字节;
进入复位阶段。
本实施例中,所述SC_I2C协议包括SC_I2C的APDU命令交互方法,参见图5,所述SC_I2C的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;优选地,向芯片发送APDU命令头PCB=00H以及LEN,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;若是,
向芯片发送APDU命令;
判断是否收到芯片状态码;若否,
判断是否收到芯片的APDU命令确认协议控制字节;若是,
判断是否能向芯片读取响应数据以及状态字;若是,
判断芯片返回的是响应数据还是状态字或状态;若为数据,
判断收到芯片的协议控制字节是否正确;优选地,判断收到芯片的协议控制字节是否为连续的2FH和02H;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
等待微控单元读取APDU命令头协议控制字节;优选地,APDU命令头协议控制字节为PCB=A0H;
判断收到的APDU命令长度与数据长度是否一致:若否,向微控单元发送状态码;优选地,向微控单元发送B0H;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
等待微控单元读取APDU命令确认协议控制字节;优选地,APDU命令确认协议控制字节为PCB=01H;
等待微控单元读取APDU响应数据及状态字协议控制字节和响应的数据长度;优选地,等待微控单元读取APDU响应数据及状态字协议控制字节(PCB=2FH)和响应的数据长度LEN;
判断是否处理完APDU命令:若否,等待微控单元读取状态协议控制字节及状态;优选地,等待微控单元读取状态协议控制字节(PCB=07H)及状态(Status);若是,
等待微控单元读取数据响应数据以及状态字;
进入APDU命令交互阶段。
具体地,本实施例提供的物联网智能设备、具有以下优点:
①物联网的芯片,实现安全通信,完成身份认证,对数据进行保护;
②接口丰富,支持SPI和I2C两种数据传输接口,支持I2C单接口通信,也支持SPI单接口通信,也支持SPI接口和I2C接口并发通信,方便微控单元开发,芯片也易于集成在PCB电路板上;
③本实施例提供的SC_I2C协议和SC_SPI协议可以大大降低智能设备的开发难度,节约开发成本。
本实施例提供的物联网智能设备,支持I2C单接口通信或者SPI单接口通信,也支持I2C接口和SPI接口的双接口并发通信,简化了物联网智能设备的开发难度,节约开发成本。
在本申请所提供的实施例中,应该理解到,所揭露的系统,单元,装置和方法,可以通过其它的方式实现。例如,以上所描述的所有实施例仅仅是示意性的,例如,上述单元或者模块等的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元、模块以及组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台终端设备(可以是手机,笔记本,或者其他电子设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种物联网智能设备,其特征在于,包括芯片、第一微控单元和第二微控单元,
所述芯片包括安全模块、协议解析模块、接口控制模块和接口通信模块;所述第一微控单元通过第一GPIO接口与所述接口控制模块连接并通过SC_SPI协议与所述接口通信模块进行数据交互;第二微控单元,所述第二微控单元通过第二GPIO接口与所述接口控制模块连接并通过SC_I2C协议与所述接口通信模块进行数据交互;
当所述第一微控单元和第二微控单元均向所述芯片发送数据时,所述芯片通过并发协议与两微控单元进行数据交互。
2.根据权利要求1所述的物联网智能设备,其特征在于,所并发协议包括以下步骤:
芯片对两所述GPIO接口的闲忙状态进行控制;
微控单元根据对应的GPIO接口的闲忙状态向所述芯片发送数据;
当两所述微控单元均向所述芯片发送数据时,芯片对先接收的数据对应的GPIO接口进行先中断处理,并将另一所述微控单元对应的GPIO接口的状态置为忙。
3.根据权利要求1所述的物联网智能设备,其特征在于,所述微控单元根据对应的GPIO接口的闲忙状态向所述芯片发送数据,包括:
微控单元查询相应的GPIO接口的闲忙状态:若GPIO接口的状态为空闲,所述微控单元向芯片发送数据;若GPIO接口的状态为忙,所述微控单元待相应的GPIO接口空闲后再向芯片发送数据。
4.根据权利要求1所述的物联网智能设备,其特征在于,所述当两所述微控单元均向所述芯片发送数据时,芯片对先接收的数据进行中断处理,并将另一所述微控单元对应的GPIO接口的状态置为忙之后,还包括:
芯片对后中断的另一所述微控单元发送的数据进行丢弃。
5.根据权利要求4所述的物联网智能设备,其特征在于,所述芯片对后中断的另一所述微控单元发送的数据进行丢弃,包括:
后中断的另一所述微控单元待相应的GPIO接口空闲后重新向芯片发送被丢弃的数据。
6.根据权利要求1所述的物联网智能设备,其特征在于,所述并发协议还包括:
当所述芯片执行DES加解密和NVM操作时,关闭所有中断,将两所述GPIO接口的状态置为忙,并对中断后发来的数据进行丢弃。
7.根据权利要求6所述的物联网智能设备,其特征在于,所述SC_SPI协议包括SC_SPI的复位方法,所述SC_SPI的复位方法包括:
在微控单元端:
向芯片发送复位命令;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
向芯片发送读取ATR命令;
判断是否收到芯片的ATR指令信息;若是,
向芯片发送获取码;
判断数据长度是否正确以及是否接收完成;若是,
向芯片发送完成码;
判断协议控制字节是否正确;若是,
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
向微控单元发送协议控制字节,并开始做复位操作;
判断是否收到微控单元的读取ATR指令;若是,
向微控单元返回ATR命令信息;
判断是否收到获取码;若是,
发送分段数据,直到数据发送完成;
进入复位阶段。
8.根据权利要求6所述的物联网智能设备,其特征在于,所述SC_SPI协议包括SC_SPI的APDU命令交互方法,所述SC_SPI的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;若是,
根据从设备接收能力,分段发送APDU命令,多次发送直到数据发送完成;
判断是否收到芯片确认协议控制字节;若是,
判断是否收到芯片状态码;若否,
判断是否能向芯片读取响应数据以及状态字;若是,
向芯片发送确认协议控制字节;
判断芯片返回的是响应数据还是状态状态;若返回的是状态,向芯片发送确认码并判断是否收到芯片忙的状态字;若返回的是数据,
向芯片发送确认码并告诉芯片已经准备好收取数据;
判断收到的数据长度是否正确;若是,
向芯片发送确认码并向芯片索要下一段数据;
判断数据是否接收完成;若是,
向芯片发送确认码告诉芯片已接收完成;
判断收到的芯片的协议控制字节是否正确;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
向微控单元发送APDU命令头确认协议控制字节;
判断数据长度是否正确;若是,
发送确认协议控制字节;
判断数据是否接收完成;若是,
发送确认协议控制字节;
判断收到的APDU命令长度与数据长度是否一致;若否,向微控单元发送状态码;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
判断是否收到微控单元读取响应数据以及状态字命令;若是,
判断是否处理完APDU命令;若是,
向微控单元发送确认协议控制字节;
判断是否收到微控单元的确认码;若是,
发送分段数据,多次发送直到数据发送完成;
进入APDU命令交互阶段。
9.根据权利要求6所述的物联网智能设备,其特征在于,所述SC_I2C协议包括SC_I2C的复位方法,所述SC_I2C的复位方法包括:
在微控单元端:
向芯片发送复位命令;
判断延时时间是否达到预设值且是否能读取芯片的ATR;若是,
读取芯片返回的ATR信息;
读取芯片返回的ATR值;
判断协议控制字节是否正确;
将读取的ATR的值转换成7816的ATR;
进入复位阶段;
在芯片端:
判断是否收到微控单元的复位命令;若是,
进行复位并配置好ATR参数;
发送协议控制字节和将要返回ATR数据长度;
发送确认协议控制字节和ATR数据字节;
进入复位阶段。
10.根据权利要求6所述的物联网智能设备,其特征在于,所述SC_I2C协议包括SC_I2C的APDU命令交互方法,所述SC_I2C的APDU命令交互方法包括:
在微控单元端:
向芯片发送APDU命令头以及数据长度,通知芯片准备接收APDU命令;
判断是否收到芯片发送的APDU命令头协议控制字节;若是,
向芯片发送APDU命令;
判断是否收到芯片状态码;若否,
判断是否收到芯片的APDU命令确认协议控制字节;若是,
判断是否能向芯片读取响应数据以及状态字;若是,
判断芯片返回的是响应数据还是状态字或状态;若为数据,
判断收到芯片的协议控制字节是否正确;若是,
进入APDU命令交互阶段;
在芯片端:
判断是否收到微控单元的APDU命令头;若是,
等待微控单元读取APDU命令头协议控制字节;
判断收到的APDU命令长度与数据长度是否一致:若否,向微控单元发送状态码;若是,
取出APDU命令,放到APDU缓存单元中进行处理;
等待微控单元读取APDU命令确认协议控制字节;
等待微控单元读取APDU响应数据及状态字协议控制字节和响应的数据长度;
判断是否处理完APDU命令:若否,等待微控单元读取状态协议控制字节及状态;若是,
等待微控单元读取数据响应数据以及状态字;
进入APDU命令交互阶段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324458.5A CN109976230A (zh) | 2019-04-22 | 2019-04-22 | 一种物联网智能设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910324458.5A CN109976230A (zh) | 2019-04-22 | 2019-04-22 | 一种物联网智能设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109976230A true CN109976230A (zh) | 2019-07-05 |
Family
ID=67085665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910324458.5A Pending CN109976230A (zh) | 2019-04-22 | 2019-04-22 | 一种物联网智能设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109976230A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443630A (zh) * | 2020-04-03 | 2020-07-24 | 军创(厦门)自动化科技有限公司 | 一种内建可编程控制功能的伺服驱动器 |
CN113886297A (zh) * | 2021-09-27 | 2022-01-04 | 北京中电华大电子设计有限责任公司 | 一种基于dma的spi并发通讯se装置及方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865572B1 (ko) * | 2007-12-04 | 2008-10-28 | 한국전자통신연구원 | 이동통신 단말기의 인터페이스 제공 장치 및 그 방법 |
CN106096477A (zh) * | 2016-06-07 | 2016-11-09 | 恒宝股份有限公司 | 一种用于多接口并行通信的读卡器的方法及读卡器 |
US20170270400A1 (en) * | 2014-08-26 | 2017-09-21 | Beijing Watchdata System Co., Ltd. | AN ACTIVE RFID DEVICE OF 13.56MHz |
CN108038520A (zh) * | 2017-11-16 | 2018-05-15 | 北京智芯微电子科技有限公司 | 一种安全芯片的读写器 |
CN108319879A (zh) * | 2018-01-30 | 2018-07-24 | 河北吕望信息科技有限公司 | 一种基于i2c协议的可视卡及其信息显示方法 |
CN108875412A (zh) * | 2017-05-15 | 2018-11-23 | 展讯通信(上海)有限公司 | 一种inSE安全模块 |
-
2019
- 2019-04-22 CN CN201910324458.5A patent/CN109976230A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100865572B1 (ko) * | 2007-12-04 | 2008-10-28 | 한국전자통신연구원 | 이동통신 단말기의 인터페이스 제공 장치 및 그 방법 |
US20170270400A1 (en) * | 2014-08-26 | 2017-09-21 | Beijing Watchdata System Co., Ltd. | AN ACTIVE RFID DEVICE OF 13.56MHz |
CN106096477A (zh) * | 2016-06-07 | 2016-11-09 | 恒宝股份有限公司 | 一种用于多接口并行通信的读卡器的方法及读卡器 |
CN108875412A (zh) * | 2017-05-15 | 2018-11-23 | 展讯通信(上海)有限公司 | 一种inSE安全模块 |
CN108038520A (zh) * | 2017-11-16 | 2018-05-15 | 北京智芯微电子科技有限公司 | 一种安全芯片的读写器 |
CN108319879A (zh) * | 2018-01-30 | 2018-07-24 | 河北吕望信息科技有限公司 | 一种基于i2c协议的可视卡及其信息显示方法 |
Non-Patent Citations (1)
Title |
---|
A.S.坦尼伯姆: "《计算机网络》", 31 December 1989, 成都科技大学出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111443630A (zh) * | 2020-04-03 | 2020-07-24 | 军创(厦门)自动化科技有限公司 | 一种内建可编程控制功能的伺服驱动器 |
CN113886297A (zh) * | 2021-09-27 | 2022-01-04 | 北京中电华大电子设计有限责任公司 | 一种基于dma的spi并发通讯se装置及方法 |
CN113886297B (zh) * | 2021-09-27 | 2023-12-01 | 北京中电华大电子设计有限责任公司 | 一种基于dma的spi并发通讯se装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110995642B (zh) | 使用预共享密钥提供安全连接 | |
CN101291224B (zh) | 在通信系统中处理数据的方法和系统 | |
CN100590639C (zh) | 用于管理多个智能卡会话的系统和方法 | |
US20050154896A1 (en) | Data communication security arrangement and method | |
CN105184566B (zh) | 一种智能密钥设备的工作方法 | |
CN108345806A (zh) | 一种硬件加密卡和加密方法 | |
CN109902053A (zh) | 一种基于双控制器的spi通信方法、终端设备及存储介质 | |
CN109286492A (zh) | 基于fpga和dsp的国密加密安全视频数据交换卡及交换方法 | |
Oren et al. | A low-resource public-key identification scheme for RFID tags and sensor nodes | |
TW200830327A (en) | System and method for encrypting data | |
CN109976230A (zh) | 一种物联网智能设备 | |
CN108768669A (zh) | 基于asic可信远程内存交换卡及其数据交换方法 | |
CN109495885A (zh) | 认证方法、移动终端、管理系统及蓝牙ic卡 | |
CN101465740B (zh) | 一种支持pci接口的wlan网卡芯片 | |
CN101777979B (zh) | 一种智能密钥设备的工作方法和系统 | |
Oren et al. | WIPR–public-key identification on two grains of sand | |
CN106886728A (zh) | 一种智能卡的读取装置和方法 | |
KR101881117B1 (ko) | 다중 통신 암호연산 병렬처리를 구현하는 보안 게이트웨이 | |
CN101877238B (zh) | 存储装置管理系统及方法、及其相关存储装置 | |
RU2633186C1 (ru) | Персональное устройство аутентификации и защиты данных | |
CN114244521B (zh) | 一种应用于边缘计算的密码系统实现方法 | |
KR20160105619A (ko) | Present를 이용한 경량암호 장치 | |
CN112583580A (zh) | 一种量子密钥的处理方法及相关设备 | |
CN115987513B (zh) | 分布式数据库分片加密、解密方法、装置、设备及介质 | |
CN114157410B (zh) | 一种面向电力终端的轻量级5g硬加密通信模组 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190705 |