云息|技术科普 资产跟踪设备中指示灯的驱动设计

Posted 瑞奇Ricky

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云息|技术科普 资产跟踪设备中指示灯的驱动设计相关的知识,希望对你有一定的参考价值。

随着经济的发展,我国的物流运输已建成由铁路运输、公路运输、水路运输、航空运输和管道运输的综合物流体系,物流行业的发展也带动了货物生产产业链的升级。但物流运输行业还存在着缺乏智能化管理的弊端,因此引入物联网资产跟踪设备有助于物流运输企业在管理中找到新的方向。

资产跟踪设备是通过物联网技术对企业的资产进行实时追踪,包括该资产的具体位置、环境状态以及运动路径等。专业从事物联网资产跟踪设备研发的通信公司,还能够根据企业用户的业务模式,提供不同功能的设备,为资产提供定制化的保障服务。其中包括了人员定位、车辆跟踪、运输状态跟踪、环境监测等功能。
指示灯作为设备是否正常运转的重要标志,在开发过程中,相关工作人员总结了设备指示灯的驱动设计。
设备指示灯简介:

设备指示灯主要用于指示设备状态,通过指示灯的不同状态可以了解设备处于什么样的一个工作状态。
两种指示灯的实现方式:

硬件电路:

指示灯的硬件驱动比较简单,一般通过一个IO直接驱动指示灯或者通过三极管间接驱动指示灯,这里不多做介绍。

软件实现:
(1)RTOS方式
typedef enum
{
Led_OFF = 0,
Led_Normal,
Led_Debug
}LedMode_t;

void LedTask(void*param)
{
LedMode_t ledmode = Led_Normal;
Q_Handle_LedMode = xQueueCreate(1,sizeof(LedMode_t));
while(1)
{
if(Q_Handle_LedMode != NULL)
xQueueReceive(Q_Handle_LedMode,&ledmode,0);

switch((uint16_t)ledmode)
{
    default:
    case Led_OFF:
        SysLED_OFF;
        osDelay(1000);
        break;
    case Led_Normal:
        SysLED_ON;
        osDelay(100);
        SysLED_OFF;
        osDelay(100);
        break;
    case Led_Debug:
        SysLED_ON;
        osDelay(500);
        SysLED_OFF;
        osDelay(500);
        break;
}

}
}
(2)裸机方式
裸机是通过定时器来实现。以下代码主要放在定时器中断内实现,不会影响其他任务有影响。
typedef enum SysLedMode
{
OFF=1,
Normal,
Debug,
}SysLedMode_t;
void LEDTsak(void)
{
static uint32_t time = 0;
time++;
switch (LedMode)
{
default:
case OFF:
LED_OFF;
time = 0;
break;
case Normal:
if(time < 100) LED_ON;
else LED_OFF;
if(time > 1000) time = 0;
break;
case Debug:
if(time < 100) LED_ON;
else LED_OFF;
if(time > 200) time = 0;
break;
}
}

从事该设备开发的工作人员或企业使用的用户,在遇到类似问题时,可参考以上思路进行尝试。

以上是关于云息|技术科普 资产跟踪设备中指示灯的驱动设计的主要内容,如果未能解决你的问题,请参考以下文章

云息技术科普三轴传感器SC7A20硬件图以及IIC和SPI选择方式的选择

云息|技术科普:资产监测设备中OPL1200 芯片FLASH读写功能实现

技术科普三轴传感器SC7A20三轴数据的格式转换问题

技术科普Yunxion资产监测设备状态指示灯不亮

技术科普资产监测设备GNSS电路设计中,LNA前端要不要加SAW

资产跟踪设备中BMA250E获取三轴加速度数值驱动代码