本实用新型涉及嵌入式系统中设备管理技术领域,具体而言,涉及一种嵌入式设备中子板类型自动识别系统。
背景技术:
随着电子设备平台化、可重复化、可扩展化等方面的趋势要求,较复杂的设备一般都会采用主板和子板可插拔组合的设计,典型产品如pc机的主板和各种网卡、显卡等,机架式刀片式的路由器、5g基站中的各种主板和功能单板,一些嵌入式产品如集中器也会采用类似的插卡方式。
常见的自动识别和管理子板的方法及存在的问题如下:
1、硬件统一总线,软件统一操作协议
pc机、刀片式路由器等设备中,操作系统按照总线协议标准中规定的id获取方法识别单板,例如pcie、usb总线设备中规定有厂商id、设备id,操作系统通过总线读取id,加载对应的驱动程序或配置文件。嵌入式设备中也可以通过某种低速总线如uart、spi等读取id,或者采用某种自定义的总线协议读取id,区分不同的单板类型。
这种方式可扩展性较好,甚至可以同时支持多块主板和多块子板,例如微软早期的dos操作系统板卡安装比较复杂,后续windows操作系统高速发展,宣传的一个创新点就是自动识别板卡和加载驱动,实现了设备“即插即用”。
这种方式在嵌入式设备中的应用受到限制,它要求子板必须有单片机实现要求的硬件总线和软件协议,这在资源较少的子板中难以支持,一些子板仅仅是为了实现电路逻辑控制功能,不具备单片机及对应的软硬件协议。
2、专用id存储器件
在子板中嵌入一个统一的存储器件,例如i2c接口的eeporm,将不同的版本信息预先烧写到器件中,然后焊接到对应子板上,主板通过i2c接口统一读取子板的类型。
这种方式简化了对子板的要求,不再强制要求子板具有单片机,但它要求为不同的子板烧写、焊接不同的存储器件,生产和物料管理比较繁琐。
3、io方式
主板设置几个io引脚作为版本引脚,子板通过不同的io电平设置版本。
这种方式实现非常简单,但嵌入式设备中io也是一种宝贵的资源,子板版本较多时会占用较多的io,可扩展性受到限制,仅适用于子板类型较少的场合。
技术实现要素:
本实用新型就是要解决现有电子设备的子板识别系统需要子板有单片机控制,需要软件协议和编程,引脚资源占用多的技术问题,提供一种固定的二线制子板类型识别总线,引脚资源占用少,同时无需子板有单片机控制,无需软件协议和编程,子板类型支持范围大,可扩展性较好,适用于各种主、子板结构的嵌入式设备的嵌入式设备中子板类型自动识别方法及系统。
本实用新型提供的嵌入式设备中子板类型自动识别系统,包括主板、子板和通讯接口,主板设有单片机,子板设有并行输入串行输出逻辑芯片、电阻和电容,所述电阻和电容串联后接地,电阻接高电平,并行输入串行输出逻辑芯片的使能引脚接地,电阻和电容之间的结点与并行输入串行输出逻辑芯片的并行数据加载引脚连接;所述并行输入串行输出逻辑芯片的8个数据位引脚被配置为连接高电平或低电平从而形成8位二进制字节,单片机的gpio1引脚、gpio2引脚分别通过通讯接口连接并行输入串行输出逻辑芯片的时钟引脚、数据输出引脚。
优选地,通讯接口为二线制总线。
优选地,并行输入串行输出逻辑芯片为74hc165芯片。
优选地,电阻的阻值大于10kω,电容的容值大于1uf。
优选地,74hc165芯片的d0和d1引脚接高电平,d2至d7引脚接低电平。
本实用新型的有益效果是:
(1)由于本实用新型子板类型id通过并行输入串行输出逻辑芯片定义,无需子板具有单片机,也无需实现软件协议,对子板设计要求低,可广泛应用于各种带单片机子板和不带单片机的子板。
(2)由于本实用新型的子板类型识别总线仅需要2根io引脚,子板类型id读取软件实现简单,占用资源少,对主板单片机的要求非常低。
(3)由于本实用新型子板类型id读取基于串行移位逻辑芯片,支持的id数量不受限制,并且可以作为校验位或其他用途,可扩展性较强。
(4)由于本实用新型子板类型id的设置可在电路设计阶段预留,通过焊接bom确定,无需额外的操作处理步骤,生产工艺简单高效。
本实用新型进一步的特征和方面,将在以下参考附图的具体实施方式的描述中,得以清楚地记载。
附图说明
图1是嵌入式设备中子板类型自动识别系统的电路原理图;
图2是子板类型id输出时序图。
具体实施方式
以下参照附图,以具体实施例对本实用新型作进一步详细说明。
如图1所示,自动识别系统包括主板、子板和通讯接口,主板设计有单片机u1,使用单片机u1的gpio1、gpio2两个通用io引脚识别子板类型。子板设计有并行输入串行输出的74hc165芯片u2,电阻r1和电容c1串联后接地,电阻r1接高电平vcc,74hc165芯片u2的ce引脚接地,电阻r1和电容c1之间的结点与74hc165芯片u2的parallelload引脚连接(parallelload引脚为并行数据加载引脚),74hc165芯片u2的clk输入引脚为时钟引脚,out输出引脚为数据引脚;子板id设置为3,即74hc165芯片u2的d0和d1引脚接高电平,d2-d7引脚接低电平。通讯接口包括clock、data二线制子板类型识别总线。通讯接口是包括clock、data二线制总线,单片机u1的gpio1引脚、gpio2引脚分别通过通讯接口的clock、data连接子板的clk引脚、out引脚。
电阻r1可以取值10kω,电容c1可以取值1uf,能够保证数据加载的稳定性。
嵌入式设备中子板类型自动识别系统工作时,子板电路的74hc165芯片u2的d7至d0共8个数据位接入不同的高低电平,组成一个8位二进制数表示子板类型id,子板上电时,电阻r1和电容c1组成的延时电路控制parallelload引脚有效,并行加载d7至d0共8个数据位,主板电路的单片机u1通过gpio1引脚模拟发送clock时钟,在时钟上升沿通过gpio2引脚读出1个数据位,依次完成8位子板类型id的读取,根据子板类型id加载不同的驱动程序和应用程序,实现子板设备的即插即用。
具体的识别方法是:
步骤1:系统上电,主板上的单片机u1进行初始化,单片机u1的gpio1引脚设置为输出低电平,gpio2引脚设置为下拉输入,进入延时等待状态。
步骤2:系统上电,子板上的电容c1瞬时相当于短路状态,则parallelload引脚为低电平,ce引脚低电平使能,74hc165芯片u2处于有效状态,74hc165芯片u2开始加载d7至d0共8个数据位,即二进制00000011,如图2所示。
步骤3:电源通过电阻r1给电容c1充电,子板上的电容c1充满电荷后,parallelload引脚变为高电平,d7至d0数据位被锁定,74hc165芯片u2停止数据加载,进入串行移位状态。
步骤4:系统上电延时500ms后(超过子板的数据加载时间后),子板类型id已稳定,主板上的单片机u1的gpio1引脚模拟发送8个数据时钟,在每个时钟上升沿稳定后,gpio2引脚在时钟上升沿读取d7至d0共8个数据位,id时序如图2所示。
步骤5:d7至d0共8个数据位00000011读入后,主板上的单片机u1判断子板类型id为3,根据预先设计的子板类型加载对应的初始化程序和业务功能,子板类型id读取结束。如果子板没插入或有其他异常,读入8个全0或全1的数据位,认为子板不在位。
需要说明的是,d7至d0共8个数据位设置为00000011仅是举例,子板类型id默认为8个数据位,定义范围为1-254,不支持数据位为全0或全1的情况。
需要说明的是,主板通过控制子板重新断电上电,实现重新读取子板类型id功能。
需要说明的是,更多的id位数通过级联74hc165芯片实现。8位id支持子板类型id数量多,大多数嵌入式系统用不到如此多数量,可拿出部分位数用于校验或其他用途,例如6位用于id,1位用于奇偶校验,一位用于0/1校验,对于需要更多位数id的系统,可级联多片74hc165芯片实现16、32甚至更长的id位数。
以上所述仅对本实用新型的优选实施例而已,并不用于限制本实用新型,对于本领域的技术人员来说,本实用新型可以有各种更改和变化。凡是在本实用新型的权利要求限定范围内,所做的任何修改、等同替换、改进等,均应在本实用新型的保护范围之内。