主要功能将PC端的数据接收下来,分发到不同的设备,也是轮询设备数据读取回来,打包回传到PC端,数据包包头包尾识别,数据校验,接收超时处理,将协议结构化处理,协议的改动不需要改动程序,中断接收一帧完成置标志位交由上层协议程序校验并处理转发
协议格式定义,每一个位都进行了定仪
#ifndef PROTOCOL_H
#define PROTOCOL_H
#include "define.h"
//IO_EMM_31
typedef struct
{
uchar Stx;
uchar Length;
uchar ID;
uchar TollCollectorID[3];
uchar LoginDuration[2];
uchar VehicleClass;
union
{
uchar byte;
struct
{
uchar Payment:4;
uchar Axle:4;
}BIT;
}AxlePaymentDisplay;
union
{
uint word;
uchar byte[2];
}TollFare;
union
{
uchar byte;
struct
{
uchar reserved:1;
uchar Exit_LSS_Rlight:1;
uchar BarrierClose:1;
uchar BarrierOpen:1;
uchar Entry_LSS_Rlight:1;
uchar Entry_LSS_Glight:1;
uchar LaneLog:1;
uchar zero:1;
}BIT;
}TMU_Control1;
union
{
uchar byte;
struct
{
uchar EmergencyAlarm:1;
uchar EvasionAlarm:1;
uchar DiscrepancyAlarm:1;
uchar MisregistrationAlarm:1;
uchar reserved:1;
uchar AxleDectorFault:1;
uchar BoothEquipmentFault:1;
uchar zero:1;
}BIT;
}TMU_Control2;
union
{
uchar byte;
struct
{
uchar EmergencyAlarmRstBut:1;
uchar EvalsionAlarmRstBut:1;
uchar DiscrepancyAlarmRstBut:1;
uchar MisregistrationAlarmRstBut:1;
uchar AxleDetectorOVerride:1;
uchar KeyInOverrideSelect:1;
uchar reserved:1;
uchar zero:1;
}BIT;
}ConStatus1;
union
{
uchar byte;
struct
{
uchar resetved:4;
uchar TMUCommFail:1;
uchar TMUDimmerOverAct:1;
uchar AllSignageDimmming:1;
uchar zero:1;
}BIT;
}ConStatus2;
union
{
uchar byte;
struct
{
uchar reserved:1;
uchar CanopyBeacon:1;
uchar Entry_LSS_Rlight:1;
uchar Entry_LSS_Glight:1;
uchar TPS_Glight:1;
uchar TPS_Rlight:1;
uchar DimmingNormal:1;
uchar zero:1;
}BIT;
}SignageControl;
union
{
uchar byte;
struct
{
uchar TPSCommFail:1;
uchar reserve2:1;
uchar reserve1:1;
uchar TPSTempHigher70:1;
uchar CLSCommFail:1;
uchar CLSPixelFaultDetect:1;
uchar CLSTempHigher70:1;
uchar zero:1;
}BIT;
}TPS_CLSFaultStatus;
union
{
uchar byte;
struct
{
uchar EntryCommFail:1;
uchar ExitCommFail:1;
uchar RlightAspectHigher50:1;
uchar RlightAspectHigher25:1;
uchar TempHigher70:1;
uchar reseved:1;
uchar Rlight:1;
uchar zero:1;
}BIT;
}ExitLSSStatus;
union
{
uchar byte;
struct
{
uchar GlightAspectHigher50:1;
uchar GlightAspectHigher25:1;
uchar RlightAspectHigher50:1;
uchar RlightAspectHigher25:1;
uchar TempHigher70:1;
uchar Glight:1;
uchar Rlight:1;
uchar zero:1;
}BIT;
}EntryLSSStatus;
union
{
uchar byte;
struct
{
uchar ShortDetect:1;
uchar reserved:2;
uchar KickBarAlarm:1;
uchar CabinetOpen:1;
uchar BarrierColse:1;
uchar BarrierOpen:1;
uchar zero:1;
}BIT;
}LocalIOInputStatus;
union
{
uchar byte;
struct
{
uchar Class0:1;
uchar Class1:1;
uchar Class2:1;
uchar Class3:1;
uchar Class4:1;
uchar Class5:1;
uchar Class6:1;
uchar zero:1;
}BIT;
}AutoTollInputStatus1;
union
{
uchar byte;
struct
{
uchar Class7:1;
uchar Class8:1;
uchar Class9:1;
uchar ClassAdd1:1;
uchar LaneOpen:1;
uchar LaneClose:1;
uchar reserved:1;
uchar zero:1;
}BIT;
}AutoTollInputStatus2;
union
{
uchar byte;
struct
{
uchar Axle1:1;
uchar Axle2:1;
uchar Axle3:1;
uchar Axle4

该博客介绍了基于飞利浦双串口51单片机的数据处理功能,包括接收PC端数据并分发到不同设备,轮询读取设备数据并打包回传,进行数据包包头包尾识别、校验、超时处理等。还提及协议结构化处理,中断接收与发送等,给出完整工程链接。
最低0.47元/天 解锁文章
420

被折叠的 条评论
为什么被折叠?



