2026-01-11
图1.ADIS16500评估板。 重要运用包括: 导航、不变性及仪器仪表 无人机及主动驾驶车辆 智能农业及施工机械装备 工场/工业主动化、呆板人 虚拟/加强实际 运动物联网
图2.ADIS16500框图。 ADIS16500是一款周详微型电机体系(MEMS) IMU,内置一个三轴陀螺仪、一个三轴加快度计及一个温度传感器。拜见图2。该IMU的敏捷度、偏置、瞄准、线性加快度(陀螺仪偏置)及坐标轴原点(加快度计位置)已经于工场校准。这象征着于各类前提下都能提供切确的传感器丈量。 经由过程该接口,微节制器可以写入及读取用户节制寄放器,并读取输出数据寄放器,从而得到加快度计、陀螺仪或者温度传感器数据。为此,治理该接口所需的全数软件及固件均已经完成开发。图2所示为数据就绪(DR)引脚。该引脚是一个数字旌旗灯号,唆使什么时候可从传感器读取新数据。DR引脚可被视为经由过程通用输入/输出(GPIO)端口的输入,是以可经由过程微节制器轻松治理。 从硬件的角度来看,IMU传感器及微节制器将利用SPI接口毗连,该接口是由nCS、SCLK、DIN及DOUT引脚构成的4线接口。DR引脚应毗连到微节制器的此中一个GPIO。此外,IMU传感器需要3 V至3.6 V的电源电压,是以3.3 V就充足了。 相识嵌入式体系的典型软件布局
图3.嵌入式体系的软件/固件布局。 相识嵌入式体系的通用软件及固件布局对于在与传感器驱动步伐毗连至关主要。这将帮忙设计职员构建一个矫捷且易在集成到任何项目的软件模块。此外,驱动步伐必需以模块化的方式实现,以使设计职员可以或许依靠在现有函数添加更高级的函数。 嵌入式体系的软件布局如图3所示。于图3中,条理布局从运用层最先,运用代码就是于这一层编写的。运用层包括main文件、依靠在传感器的运用模块,以和依靠在治理处置惩罚器配置的外设驱动步伐的模块。此外,于运用层中,还有有与微节制器必需处置惩罚的使命相干的所有模块。例如,经由过程中止或者轮询、状况机等治理使命的所有软件。运用层级别按照项目的类型而有所差别,是以差别项目中实现的代码也差别。于运用层,体系的所有传感器按照其数据手册举行初始化及配置。传感器驱动步伐提供的所有大众函数都可挪用。例如,读取卖力输出数据的寄放器,或者者写入一个寄放器以更改设置/校准的步伐。 运用层下面是传感器的驱动层,这一层有两种类型的接口。可从运用层挪用的所有函数都于这一层实现。此外,函数的原型插入到驱动步伐标头文件(.h)中。是以,经由过程查看传感器驱动步伐的标头文件,您可以相识驱动步伐的接口以和可从较高层级挪用的函数。较初级另外层将与特定外设驱动步伐毗连,这些外设驱动步伐依靠在治理传感器的微节制器。外设驱动步伐包括治理微节制器外设的所有模块,例如SPI、I2C、UART、USB、CAN、SPORT等,或者治理处置惩罚器内部模块的模块,例如按时器、内存、ADC等。因为它们与硬件慎密相干,是以称为初级函数。例如,因为微节制器差别,是以每一个SPI驱动步伐都是差别的。咱们以ADIS16500为例。接口是SPI,是以其驱动步伐将与微节制器的SPI驱动步伐封装于一路。对于在差别的传感器及差别的接口也是云云。例如,假如另外一个传感用具有I2C接口,那末一样地,将于传感器的初始化历程中与微节制器的I2C驱动步伐封装一路。 传感器驱动步伐的基层是外设驱动步伐,各种微节制器的外设驱动步伐各不不异。如图3所示,外设驱动步伐及初级驱动步伐是分隔的。素质上,外设驱动步伐经由过程可用的通讯和谈提供读写函数。因为初级驱动步伐将治理旌旗灯号的物理层,是以它很是依靠在设计职员所利用的硬件。外设及初级驱动层往往经由过程可视化东西从微节制器的集成开发情况(IDE)天生,详细取决在安装微节制器的评估板。 驱动步伐实现 与硬件无关的要领撑持于差别运用、差别微节制器或者差别处置惩罚器中利用不异的驱动步伐。这类要领取决在驱动步伐的实现方式。要相识驱动步伐的实现方式,起首要看接口,或者图4中的传感器标头文件(adis16500.h)。 标头文件包罗有效的大众宏。此中包括寄放器的地址、SPI最年夜速率、默许输出数据速度(ODR)、位掩码,以和加快度计、陀螺仪及温度传感器的输出敏捷度,这些宏与用在暗示数据的位数(16或者32)有关。图4显示了这些宏,此中仅显示了几个寄放器的地址作为示例。本文援用的代码可拜见附录。
图4.ADIS16500标头文件(adis16500.h)中显示的宏。 附录中的图3显示了包括adis16500.h于内的每一个模块都可利用的所有大众变量及大众类型声明,此中界说了新的类型,以便更有用地治理数据。例如,ADIS16500_XL_OUT类型被界说为包罗三个浮点的布局,每一个轴(x、y及z)一个浮点。此外,还有经由过程列举来撑持差别的传感器配置,使设计职员可以或许矫捷地选择切合自身需求的配置。最值患上存眷的是使驱动步伐与硬件无关的部门。于大众变量部门的开首(附录中的图3),有三个要害的类型界说:指向三个基本函数的指针,或者者SPI发送及吸收函数,以和为天生准确的停转时间,两次SPI拜候之间所需的延迟函数。这些代码还有显示了可指向的函数的原型。SPI发送函数将指向待发送值的指针作为输入,然后返回可供查抄的内容,以确定发送是否乐成。SPI吸收函数也是云云,该函数将指向变量的指针作为输入,这个指针将存储吸收时读取的值。延迟函数以浮点数作为输入,暗示设计职员想要等候的微秒数,不返回任何内容(void)。经由过程这类方式,设计职员可以于运用层(例如于main文件中)使用这些特定的原型来声明这三个函数。声明后,他们可以将这三个函数赋值给ADIS16500_INIT私有布局的字段。附录中的图2枚举了一个示例,以帮忙更好地舆解末了一步。 SPI发送器、吸收器函数及延迟函数于main文件中声明为静态函数,是以属在运用层。这些函数依靠在外设驱动步伐函数,是以传感器驱动步伐自己与硬件无关。这三个函数被分配给一个变量的字段,而这些字段是指向函数的指针。如许一来,设计职员可以封装传感器及微节制器,而无需修改传感器驱动步伐代码。假如设计职员改换微节制器,他们只需将三个静态函数内的初级函数替代为新微节制器的响应函数,从而调解main文件。经由过程这类要领,驱动步伐变患上与硬件无关,由于设计职员不需要更改传感器的驱动步伐代码。微节制器的IDE中凡是包罗spiSelect、spiReceive、spiUnselect、chThdSleepMicroseconds等初级函数。于本例中,所用的微节制器评估板是SDP-K1,它嵌入了STM32F469NIH6 Cortex -M4微节制器。该IDE是ChibiOS,这是一个免费的Arm 开发情况。 附录中的图4显示了运用级另外可挪用函数原型。这些原型以和附录中图2及图3会商的所有其他软件及固件均可于传感器驱动步伐的标头文件(adis16500.h)中找到。起首,初始化函数(adis16500_init)将指向ADIS16500_INIT布局的指针作为输入,并返回状况代码,以唆使初始化是否乐成。初始化函数的实此刻传感器驱动步伐的源文件(adis16500.c)中完成。附录中的图5所示为adis16500_init函数的代码。起首,界说名为ADIS16500_PRIV的类型,此中至少包罗ADIS16500_INIT布局的所有字段,然后声明一个属在该类型的私有变量_adis16500_priv。于初始化函数中,运用层通报的ADIS16500_INIT布局的所有字段将赋值给私有变量_adis16500_priv的字段。这象征着,对于传感器驱动步伐的任何后续挪用都将利用由运用层传入的SPI读写函数及处置惩罚器延迟函数。这一点很要害,正因云云,传感器驱动步伐才能与硬件无关。假如设计职员想要更改微节制器,只需更改通报给adis16500_init函数的函数便可,不需要修改传感器驱动步伐代码自己。于初始化函数开首,_adis16500_priv变量的已经初始化字段设置为false,由于初始化历程还没有完成。于该函数竣事时,该字段将设置为true,然后返回。设计职员每一次挪用另外一个大众函数(附录中的图4)时,城市履行如下查抄:假如_adis16500_priv.initialized为true,可以继承;假如为false,将当即返回ADIS16500_RET_VALLED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。
要害字: 驱动电源于工业主动化蓬勃成长确当下,工业机电作为焦点动力装备,其驱动电源的机能直接瓜葛到整个体系的不变性及靠得住性。此中,反电动势按捺与过流掩护是驱动电源设计中至关主要的两个环节,集成化方案的设计成为晋升机电驱动机能的要害。
要害字: 工业机电 驱动电源LED驱动电源于LED照明体系中饰演着至关主要的脚色。因为LED具备节能、环保、长命命等长处,使患上LED照明于各个范畴获得广泛运用。然而,LED的电流、电压特征需要特定的驱动电源才能正常事情。本文将先容经常使用的LED驱动电...
要害字: LED驱动电源 led照明崧盛股分9日发布投资者瓜葛勾当记载表,就植物照明成长趋向、行业壁垒等问题举行分享。植物照明将来市场需求广漠崧盛股分指出,植物照明将会走向持久财产范畴。重要缘故原由有三:第一,LED植物照明赋能终端莳植更具备经济价值。因为LE...
要害字: 崧盛股分 驱动电源早前有新闻称,Cree于2018年最先公布转型高科技半导体范畴,并一边逐渐离开照明与LED相干营业,一边连续投资半导体。于今日,Cree公布与SMART Global Holdings, Inc.告竣终极和谈,拟将LED...
要害字: cree led照明-米兰milan