智能车上位机----摄像头组协议

合集下载

东1 华东赛区-摄像头组-南京师范大学-先驱者 技术报告

东1 华东赛区-摄像头组-南京师范大学-先驱者 技术报告

第九届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告学校: 南京师范大学队伍名称: 先驱者参赛队员: 李昊洋王亮姜云磊带队教师: 沈世斌张亮关于技术报告和研究论文使用授权的说明本人完全了解第九届“飞思卡尔”杯全国大学生智能汽车邀请赛关于保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:李昊洋王亮姜云磊带队教师签名:沈世斌张亮日期:2014.8.10摘要本文以第九届全国大学生智能车竞赛为背景,介绍了两轮自平衡小车控制系统的软硬件结构和开发流程。

该比赛采用大赛组委会统一指定的E型车模,以Freescale半导体公司生产的32位单片机MK60FX512VLQ15 KinetisARM-Cortex M4为核心控制器,在IAR6.3开发环境中进行软件开发,使用MT9V022 CMOS摄像头进行赛道信息采集。

整个系统涉及硬件电路设计、控制策略、整车机械架构等多个方面。

为提高在高速运行下的稳定性,进行了不同方案的设计,并使用Matlab进行了大量的数据分析以及上位机的设计调试,确定了现有的整车架构和相关控制参数。

车模使用飞思卡尔加速度传感器MMA7361以及MPU6050的陀螺仪模块进行角度融合,获取车模姿态,完成平衡直立。

根据MT9V022采集到的赛道信息进行软件二值化后路径规划,通过两轮电子差速实现转向。

关键词:Freescale,智能车,MT9V022,第九届摄像头,卡尔曼滤波目录引言 (Ⅴ)第一章两轮自平衡智能车硬件电路设计 (1)1.1两轮自平衡智能车的电源管理 (1)1.2最小系统板设计 (2)1.3 两轮自平衡智能车的电机驱动设计 (4)1.4两轮自平衡智能车的姿态传感器模块的设计 (5)1.5 摄像头的选用 (6)1.6速度反馈模块 (7)1.7 人机交互模块的设计 (7)第二章两轮自平衡智能车机械结构设计 (9)2.1车模底板的微改装 (9)2.2电池的安装 (10)2.3摄像头传感器的安装 (10)2.4姿态传感器的安装 (11)第三章程序控制说明 (13)3.1系统软件流程 (13)3.2中断处理与程序分配 (13)3.3位置式PID (14)3.4摄像头图像处理与识别 (14)3.5两轮平衡控制 (15)3.6速度控制 (16)3.7直立控制、速度控制、转向控制融合 (17)第四章系统开发及调试工具 (19)4.1开发工具 (19)4.2MATLAB数据处理 (19)第五章心得总结 (22)参考文献 (25)附录 A 人字弯处理程序 (Ⅵ)引言全国大学生“飞思卡尔”杯智能汽车竞赛是以“立足培养、重在参与、鼓励探索、追求卓越”为宗旨,鼓励创新的一项科技竞赛活动。

15.TCP控制智能小车实验(上位机)

15.TCP控制智能小车实验(上位机)

实验十五:树莓派平台-TCP控制智能小车实验(上位机)一.实验基本介绍本次实验主要是通过搭建TCP并发服务器,支持多用户连接控制智能小车,客户端上位机通过连接上小车搭建好的TCP_control并发服务器。

通过发送TCP 协议数据控制小车的前进,后退,左转,右转,停止,左旋,右旋,以及前舵机的左中右控制,后面摄像头舵机任意角度的连续控制,还有七彩灯的控制,灭火,鸣笛,小车的加速,减速。

以及树莓派智能小车通过丰富的传感器采集的数据实时的显示在我们的上位机上。

也是通过TCP协议通信。

二.TCP通信模型的设计服务器端:(被动接受请求)socket //电话机|bind(ip+port) //绑定电话号码绑定服务器自己的ip和port等待客户端连接。

|listen //监听有人打电话进来|accept //接听电话|recv/send //通话过程|close //挂机客户端:(主动发起连接)socket //电话机|bind(ip+port) //绑定电话号码|connect //拨打电话|recv/send //通话过程|close //挂机三.TCP常用函数讲解<1>创建流式套接字int socket(int domain, int type, int protocol);功能:创建socket ,返回对应的文件描述符参数:@domain 域(通信的范围)@type SOCK_STREAM 流式套接字: 有序可靠,面向连接字节流SOCK_DGRAM 报文套接字:无连接的,不可靠的SOCK_RAW 原始套接字: 可以访问一些低层的网络协议@protocol 0表示默认的方式SOCK_STREAM TCPSOCK_DGRAM UDP返回值:成功文件描述符失败-1 ,并设置errno<2>把服务器的ip和port和sockfd绑定int bind(int sockfd, const struct sockaddr *addr,socklen_t addrlen);功能:绑定一个地址(ip+port)到一个socket 文件描述符上参数:@sockfd socket 函数获得的文件描述符@addr 地址信息结构体//通用结构体struct sockaddr {sa_family_t sa_family; //地址族char sa_data[14]; //地址信息}//TCP/IP协议的地址结构struct sockaddr_in {sa_family_t sin_family; //协议簇in_port_t sin_port; //端口struct in_addr sin_addr; //ip地址};@addrlen 表示addr 参数对应类型的地址信息结构体的大小返回值:成功0失败-1&errno操作:(1).定义地址结构体变量,清零struct sockaddr_in ser_addr;memset(&ser_addr,0,sizeof(ser_addr));(2).填充地址信息ser_addr.sin_family = AF_INET;//地址协议族ser_addr.sin_port = htons(8888);//端口号ser_addr.sin_addr = inet_addr("192.168.1.7");(3). 绑定if(bind(sockfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr)) < 0){perror("bind fail");exit(EXIT_FAILURE);}<3>获得客户连接请求,创建连接连接套接字,负责数据通信。

采用Zigbee无线通信技术的智能车监控系统设计

采用Zigbee无线通信技术的智能车监控系统设计

采用Zigbee无线通信技术的智能车监控系统设计智能车又称轮式机器人,是集传感器、计算机、自动控制、通信以及机械等技术于一身的综合系统。

在智能车的设计和制作过程中,控制算法调试是一个极其重要而又关键的环节,面临着许多急需解决的问题:智能车能否按照事先设计的思路运行;控制策略是否符合实际需求;运行中出现问题时,智能车的各项实时参数是什么。

针对这些问题,许多学者提出了基于仿真的解决方案。

有学者提出基于参数化的机械系统几何模型,使用拉格朗日方法建立系统动力学方程,来对虚拟机械系统进行动力学分析。

但由于车辆机械结构的复杂性,这种建模和仿真方式过于繁琐,影响了仿真和研究的效率。

清华大学针对全国大学生智能车竞赛开发的Plastid仿真平台,其动力学模型虽然较为简单,但该模型是一种理想化的模型,对于影响智能车运行状况的一些参数的考虑较少,例如小车与路面之间的摩擦系数、小车的机械性能等因素,因而仿真结果与实际存在一定差距。

有学者提出一种智能车硬件在环仿真系统,该仿真系统发挥了硬件在环的长处。

但该软件仍以虚拟仿真平台LabVIEW为基础,控制算法的分析和决策在上位机上运行,脱离了车模实体的软件运行环境,其仿真结果与实际也存在一定的差距,因此其应用有相当的局限性。

设计了一种基于无线通信技术的智能车运行状态实时监控系统。

该系统以车模为实验主体,车载控制器完成智能车的数据采集、分析、决策等。

上位机通过无线通信技术获得车模的各项运行参数,监控车模的运行状态。

1 系统总体设计1.1 Zigbee技术分析Zigbee技术是一种近距离、低功率、低成本的双向无线通信技术[5-6],工作频段为全球通用频段2.4 GHz,数据传输速率为10~250 kbit/s,免执照。

Zigbee协议由应用层、网络层、数据链路层和物理层组成,其中物理层和链路层遵循IEEE802.15.4协议。

一个Zigbee网络支持255个设备;采用先进的AES128加密算法,提供数据完整性检查;具有载波侦听多路访问、冲突检测(CSMA/CA)方式,有很好的兼容性。

智能车摄像头组

智能车摄像头组

Your company slogan
摄像头组——机械设计 机械设计 摄像头组
此外,摄像头所架的高度一定要适宜。架得过高会导致小车的视野过 此外,摄像头所架的高度一定要适宜。 看到的黑线变得太细,还会导致智能车的重心太高, 大,看到的黑线变得太细,还会导致智能车的重心太高,使智能车快 速过弯时容易翻车;架得太低又会影响前瞻,带来反光的问题, 速过弯时容易翻车;架得太低又会影响前瞻,带来反光的问题,影响 采样。合适的高度要既满足小车的重心要求,又保证前瞻距离。 采样。合适的高度要既满足小车的重心要求,又保证前瞻距离。
一般的调试步骤为: 一般的调试步骤为 电源调试——单板调试 单板调试——联调。 联调。 电源调试 单板调试 联调 调试不仅包括软件调试,还包括硬件调试。 调试不仅包括软件调试,还包括硬件调试。
Your company slogan
调试的常用方法
(1)电路检查法 ) (2)电压测量法 ) (3)电流测量法 ) (4)电阻测量法 ) (5)信号注入法 ) (6)其他方法 )
Your company slogan
硬件设计——路径识别单元 路径识别单元 硬件设计
要能有效地采样摄像头视频信号,首先要处理好的技术问题就是能提 要能有效地采样摄像头视频信号, 取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。否则, 取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。否则,单 片机将无法识别所接收到的视频信号处在哪一场, 片机将无法识别所接收到的视频信号处在哪一场,也无法识别是在该 场中的场消隐区还是视频信号区, 场中的场消隐区还是视频信号区,更无法识别是在视频信号区的第几 行。 要处理好行同步脉冲和场同步脉冲提取的问题, 要处理好行同步脉冲和场同步脉冲提取的问题,有以下两种可供参考 的方法。 的方法。

智能车摄像头组

智能车摄像头组

Your company slogan
硬件设计——路径识别单元 路径识别单元 硬件设计
要能有效地采样摄像头视频信号,首先要处理好的技术问题就是能提 要能有效地采样摄像头视频信号, 取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。否则, 取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。否则,单 片机将无法识别所接收到的视频信号处在哪一场, 片机将无法识别所接收到的视频信号处在哪一场,也无法识别是在该 场中的场消隐区还是视频信号区, 场中的场消隐区还是视频信号区,更无法识别是在视频信号区的第几 行。 要处理好行同步脉冲和场同步脉冲提取的问题, 要处理好行同步脉冲和场同步脉冲提取的问题,有以下两种可供参考 的方法。 的方法。
(1)采用稳压管芯片LM2576将电源电压稳压到5 V后,给单片机系统电路、 )采用稳压管芯片LM2576将电源电压稳压到5 V后,给单片机系统电路、 车速检测的转角编码器电路供电,且为后面的升压降压做准备; (2)经过一个二极管降至6.5 V左右后供给转向伺服电机; )经过一个二极管降至6.5 V左右后供给转向伺服电机; (3)直接给直流驱动电机、驱动芯片MC33886电路供电; )直接给直流驱动电机、驱动芯片MC33886电路供电; (4)采用升压芯片B0512S将5 V电压升压到12 V后,给摄像头供电; )采用升压芯片B0512S将 V电压升压到12 V后,给摄像头供电; (5)采用稳压芯片LT1764将5 V电压稳压到2.5 V后,作为单片机A/D模 )采用稳压芯片LT1764将 V电压稳压到2.5 V后,作为单片机A/D模 块参考电压。
Your company slogan
谢谢观赏
Your company slogan
Your company slogan

飞思卡尔智能车摄像头组技术报告 (2)

飞思卡尔智能车摄像头组技术报告 (2)

第十届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告摘要本文设计的智能车系统以K60微控制器为核心控制单元,基于CCD摄像头的图像采样获取赛道图像信息,提取赛道中心线,计算出小车与黑线间的位置偏差,采用PD方式对舵机转向进行反馈控制。

使用PID控制算法调节驱动电机的转速,结合特定算法分析出前方赛道信息实现对模型车运动速度的闭环控制。

为了提高模型车的速度和稳定性,我们用C++开发了仿真平台、蓝牙串口模块、SD卡模块、键盘液晶模块等调试工具,通过一系列的调试,证明该系统设计方案是确实可行的。

关键词:K60,CCD摄像头,二值化,PID控制,C++仿真,SD卡AbstractIn this paper, we will design a intelligent vehicle system based on MC56F8366 as the micro-controller unit. using the CCD image sensor sampling to the track image information to extract the track line center, to calculate the positional deviation between the car with the black line, the use of PD on the rudder. The machine turned to the feedback control. We use PID control algorithm to adjust the speed of the drive motor, combined with specific algorithms to achieve closed-loop control of the movement speed of the model car in front of the track. In order to improve the speed and stability of the model car, we use the C++ to develop a simulation platform, Bluetooth serial module, SD card module, keyboard, LCD modules, debugging tools. Through a series of debugging, the system design is feasible.Key words: K60,CCD_camera, binaryzation, PID control, C++ simulation, SD card目录第1章引言................................................................................... - 1 - 第2章系统总体设计................................................................ - 2 - 2.1 系统分析..................................................................................... - 2 - 2.2 车模整体布局............................................................................. - 3 - 2.3 本章小结....................................................................................... - 4 - 第3章系统机械设计及实现................................................... - 5 - 3.1 前轮定位的调整......................................................................... - 5 -3.1.1主销内倾..............................................................................- 6 -3.1.2 后倾角.................................................................................- 6 -3.1.3 内倾角.................................................................................- 7 - 3.2 舵机安装....................................................................................... - 8 -3.2.1 左右不对称问题的发现与解决........................................- 10 - 3.3 编码器的安装............................................................................ - 10 - 3.4 摄像头安装.................................................................................- 11 -3.4.1 偏振镜的使用......................................................................- 12 -3.4.2 摄像头的标定......................................................................- 12 - 3.5 摄像头的选用.............................................................................- 13 - 3.6 红外接收装置.............................................................................- 14 -3.7 防止静电复位.............................................................................- 15 - 3.8 本章小结.......................................................................................- 15 - 第4章硬件电路系统设计及实现 ...................................... - 16 -4.1 硬件设计方案............................................................................- 16 - 4.2 电源稳压......................................................................................- 17 - 4.3 电机驱动......................................................................................- 18 - 4.4 图像处理部分............................................................................- 19 -4.4.1 摄像头升压电路.............................................................- 19 -4.4.2 视频分离电路.................................................................- 19 -4.4.3 硬件二值化.....................................................................- 19 - 4.5 灯塔电路......................................................................................- 21 - 4.6 本章小结......................................................................................- 21 -第5章系统软件设计.............................................................. - 22 -5.1 软件流程图...............................................................................- 22 - 5.2 算法新思路...............................................................................- 23 -5.2.1中心线提取.......................................................................- 23 -5.2.2 直角检测........................................................................... - 24 -5.2.3 单线检测......................................................................... - 24 - 5.3 舵机控制.....................................................................................- 25 - 5.4 速度控制.....................................................................................- 26 - 5.5 PID算法....................................................................................- 26 - 5.6 路径优化.....................................................................................- 31 -第6章系统联调...................................................................... - 33 - 6.1 开发工具.................................................................................... - 33 - 6.2 无线调试蓝牙模块及蓝牙上位机..........................................- 33 - 6.3 键盘加液晶调试......................................................................- 34 - 6.4 TF卡调试模块.........................................................................- 34 -6.4.1 TF卡.............................................................................- 34-6.4.2 SDCH卡 .........................................................................- 35 -6.4.3 软件实现.......................................................................- 36 - 6.5 C++上位机设计........................................................................- 36 - 6.6 电源放电模块...........................................................................- 38-6.6.1 镍镉电池记忆效应…………………………………….. - 39-6.6.2 放电及电池性能检测设备…………………………….. - 39- 6.7 本章小结....................................................................................- 40 - 第7章模型车技术参数........................................................ - 41 - 第8章总结............................................................................... - 42 - 参考文献...................................................................................... - 44 -第1章引言在半导体技术日渐发展的今天,电子技术在汽车中的应用越来广泛,汽车智能化已成为行业发展的必然趋势。

智能汽车摄像头组技术报告

智能汽车摄像头组技术报告
要使智能车能够稳定、高速地运行,正是在于机械结构与软硬件系统地融洽结合,通过不断地实验和测试,我们发现以下三个方面的机械结构对智能车的运行影响很大:转向机构,传感器的固定,重心的调整。高速运行下舵机的转动速度对车转向的灵活程度起到了根本性的作用。摄像头是采集最原始赛道信息的最前端的传感器,良好的固定方案才能使其最大限度地采集到良好的赛道信息。而整车的重心越低,才能在控制时更加灵活稳定。
3.4.3
刚刚买来的摄像头,因为加工带来的误差,每一个产品的光学特性都有差异,因此我们首先要检测其图像是否调正,通常我们将摄像头与电脑连接观测视频卡采集的图像,再手动调正,最后粘接好并固定。
3.5编码器的安装
编码器是测速用的核心模块,必须将其和电机牢牢咬合才能准确测量实际速度值,而且必须保证高速和低速情况都能咬合紧。我们选取的500线的欧姆龙编码器,其性能稳定且返回的速度值稳定。安装采用一个线切割的空白PCB板和车身固定在一起这样便使得编码器能非常牢的和电机齿轮咬合。具体安装图如图3.5所示。

本文设计的智能车系统以MK60N512ZVLQ10微控制器为核心控制单元,通过CMOS摄像头检测赛道信息,提取赛道两边黑色引导线,用于赛道识别;通过欧姆龙编码器检测智能车的实时速度,使用PID控制算法调节驱动电机的转速和转向舵机的角度,实现了对智能车运动速度和运动方向的闭环控制。文章将从机械结构设计,硬件电路设计,软件算法设计以及调试经验等四个方面全面介绍智能车的制作及调试过程。
第二章
根据大赛的统一要求,须在组委会统一提供的车模平台上,自主选择传感器类型,设计系统硬件电路,开发软件算法。本系统主要包括三个大部分,分别为车模的机械结构、硬件电路系统、软件算法。每一个部分又由各个小模块构成。所以要构建一个完整的智能车系统,必须先对各个模块进行论证和设计,再将整个系统组合成一个完整系统,进行系统整体的调试。

道路运输车辆智能视频监控系统通信协议规范

道路运输车辆智能视频监控系统通信协议规范

道路运输车辆智能视频监控系统通信协议规范Intelligent video monitoring system for vehicles engaged in road transport-Specifications for communication protocol2019年月日目次前言 (I)1 范围及说明 (1)2 规范性引用文件 (1)3 术语和定义、缩略语 (1)3.1 先进驾驶辅助系统 advanced driver assistant system;ADAS (1)3.2 驾驶员监测系统 driver monitoring system;DMS (1)3.3 车辆运行监测系统 vehicle operation monitoring system;VOMS (1)3.4 车辆状态监测系统 vehicle condition monitoring system;VCMS (1)3.5 前向监测系统 forward monitoring system;FMS (1)3.6 盲区监测系统 blind spot detection system;BSD (1)3.7 轮胎气压监测系统 tire pressure monitoring system;TPMS (2)3.8 原车数据 original vehicle data;OVD (2)3.9 外设 peripherals (2)3.10 交通标志识别 traffic sign recognition;TSR (2)3.11 车头时距 time headway;THW (2)3.12 分级速度阈值 hierarchical velocity threshold;HVT (2)4 终端与平台间协议基本约定 (2)5 终端与平台间通信协议 (2)5.1 外设信息上报 (2)5.2 设置终端参数扩展 (14)5.3 数据透传扩展 (33)5.4 查询指定外设参数 (34)5.5 查询外设参数应答 (35)5.6 附件上传 (37)5.7 附件上传完成指令 (38)5.8 外设升级/路网地图升级/外设参数恢复 (38)5.9 IC卡道路运输证件图片上报 (40)6 终端与外设间网络通信协议 (40)6.1 适用范围 (40)6.2 通讯方式 (41)6.3 传输约定 (41)6.4 消息帧格式 (41)6.5 外设查询 (42)6.6 外设恢复默认参数 (43)6.7 位置基本信息传输 (43)6.8 外设基本信息查询 (45)6.9 外设升级 (46)6.10 外设参数查询 (47)6.11 外设参数设置 (48)6.12 外设报警/辅助信息上报 (49)6.13 请求多媒体数据 (54)7 终端与外设间串口通信协议 (57)7.1 适用范围 (57)7.2 通信方式 (57)7.3 传输约定 (57)7.4 消息帧格式 (57)7.5 外设升级指令 (58)7.6 外设数据定义 (59)7.7 广播 (61)7.8 轮胎气压监测系统参数设置 (62)7.9 轮胎气压监测系统数据查询 (64)7.10 轮胎气压监测系统参数查询 (64)7.11 轮胎气压监测系统基本信息查询 (66)前言本标准按照 GB/T 1.1-2009 给出的规则起草。

飞思卡尔智能车摄像头组技术报告

飞思卡尔智能车摄像头组技术报告

第七届“飞思卡尔”杯全国大学生智能汽车竞赛技术报告(校徽)学校:*********队伍名称:******参赛队员:******************带队老师:******关于技术报告和研究论文使用授权的说明本人完全了解第七届“飞思卡尔”杯全国大学生智能汽车邀请赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:带队教师签名:日期:摘要本文以第七届全国大学生智能车竞赛为背景,介绍了智能赛车控制系统的软硬件结构和开发流程。

该比赛采用组委会规定的标准车模,以 Freescale 半导体公司生产的 16 位单片机MC9S12X128为核心控制器,在 CodeWarrior IDE开发环境中进行软件开发,要求赛车在未知道路上完成快速寻线。

整个系统涉及车模机械结构调整、传感器电路设计及信号处理、控制算法和策略优化等多个方面。

为了提高智能赛车的行驶速度和可靠性,对比了不同方案(如摄像头与光电管检测方案)的优缺点,并结合 Labview 仿真平台进行了大量底层和上层测试,最终确定了现有的系统结构和各项控制参数。

它采用摄像头对赛道进行检测,通过边缘提取获得黑线位置,用 PID 方式对舵机进行反馈控制。

通过速度传感器获取当前速度,采用增量式数字PID控制实现速度闭环,根据预判信息和记忆信息对速度进行合理分配。

同时采用拨码开关和LCD显示屏实现人机交互系统。

测试结果表明,在该控制系统下,自寻迹机器人小车具有良好的位置跟踪和快速切换速度性能。

关键词:智能车,跟踪寻迹,摄像头,传感器,PID,最优曲率ABSTRACTIn the background of the 7nd National Intelligent Car Contest for College Students, this article introduces the soft hardware structures and the development flow of the vehicle control system. This contest adopting the standard model car prescribed by the contest organization committee, using the 16-bit MCU MC9S12X128 produced by Freescale Semiconductor Company as the core controller, developing under the CodeWarrior IDE, requires the car track the line fast on the road. The whole system includes the aspects of the mechanism structure adjustment, the sensor circuit design and signal process, controlalgorithm and strategy optimization etc.In order to increase the speed and the reliability of the car, the advantage and disadvantage of the different schemes (such as the camera and photoelectric cell scheme) are compared, and a great number of the bottom layer and the upper layer tests are carried on combined with the Labview simulation platform. At last, the current system structure and each control parameters are determined. It captures the road information through a camera, then abstracts the black line position by edge-detection method. After that, PD feedback control is used on the steering. The system obtains the current speed using a speed sensor, so that it can realize the feedback control of the speed by the increased digital PID algorithm control method. At the same time, the use of an LCD displays trails information and keyboard is used to achieve the man-machine interaction. According to the pre-judge inform and the memorized inform, it allocates the speed properly. The test results showed that the self-tracing robot car had good position tracking and fast speed switching performance .Key words:intelligent vehicle,line track, camera,sensor, PID, optimal curvature目录第一章:引言 (1)1.1背景介绍 (1)1.2发展现状 (1)1.3章节安排 (2)第二章:系统整体框架 (3)2.1系统框架 (3)2.1.1硬件系统 (3)2.2.2软件系统 (4)2.2方案简介 (4)第三章:机械设计 (6)3.1汽车行驶的数学模型 (6)3.2整体布局与调整 (7)3.2.1车模分析 (7)3.2.2 车模布局思想 (8)3.3机械结构调整 (9)3.3.1前后轮定位 (9)3.3.2其他机械模块调整 (9)3.3摄像头的安装 (9)3.4舵机的安装 (10)3.5编码器的安装 (10)第四章:硬件电路设计 (12)4.1硬件设计方案 (12)4.2传感器的选择 (12)4.2.1摄像头 (12)4.2.2编码器 (12)4.3电路设计方案 (13)4.3.1单片机最小系统板 (13)4.3.2稳压模块电路 (14)4.3.3驱动模块电路 (14)第五章:软件系统设计 (16)5.1 软件各功能模块设计 (16)5.1.1 时钟模块 (16)5.1.2 PWM输出模块 (16)5.1.3 ECT模块 (17)5.1.4外部中断 (17)5.2视频采集与图像处理 (17)5.2.1摄像头工作原理 (17)5.2.2图像处理 (18)5.3路径识别思想 (21)5.4舵机转向和速度调节 (23)5.4.1PID控制算法介绍 (23)5.4.2舵机转向控制 (24)5.4.3速度控制 (25)5.4.4细节控制 (25)第六章:开发环境、调试工具 (28)6.1软件开发平台Codewarrior IDE (28)6.2辅助调试方法 (28)6.2.1 Labview调试 (28)6.2.2人机交互界面 (29)6.2.3无线模块 (29)第七章:结论 (31)参考文献 (32)鸣谢 (32)第一章:引言1.1背景介绍智能汽车就是一种无人驾驶汽车,也可以称之为轮式移动机器人,主要依靠车内以计算机系统为主的智能驾驶仪来实现无人驾驶。

摄像头通讯协议 v1[1].5

摄像头通讯协议 v1[1].5
1)、RS-485 总线多机通信:前 3 位为地址位,后 5 位为指令位;
NNNMMMMM
地址位
指令位
地址位:0x01~0x07
以下描述暂未考虑地址位,用户在实际开发过程中需要加入相应的地址位。
深圳市为信拓展科技有限公司
6
应用示例
ቤተ መጻሕፍቲ ባይዱ
VGP3XX-XXXX 应用协议
Ver1.5
1、请求同步,通讯连接
上位机给摄像机上电后,上位机连续发送同步请求(AA 0D 00 00 00 00),直到摄像机应 答(AA 0E 0D XX 00 00)。通常上位机发送 5 次以内,摄像机会成功应答。
AA 0E 0D XX 00 00 AA 0D 00 00 00 00
7
VGP3XX-XXXX 应用协议
Ver1.5
2、JPEG 快照图像
上位机
初始化 JPEG 预览,VGA 格式
AA 01 00 07 XX 07
设置包大小 512 字节
AA 06 08 00 20 00
快照 压缩图像 AA 05 00 00 00 00
通讯基本参数:
RS485 半双工模式传输,参数设置如下: 单字节时序:
z 波特率: 自适应 z 数据位: 8 z 停止位:1 z 校验位: 无
所有通讯指令由 6 个字节组成 同步字节(1 字节,0xAA) + 指令地址字节(1 字节)+ 参数字节(4 字节) 同步字节:0xAA,上位机向摄像头之间的所有指令都以同步字节打头 指令地址字节:由地址和指令共同使用一个字节。
备注: XX:无关 ~~:摄像机返回图像大小
绿色:需要加入地址位 8
VGP3XX-XXXX 应用协议

飞思卡尔智能车摄像头组入门指南

飞思卡尔智能车摄像头组入门指南

飞思卡尔智能车摄像头组入门指南摄像头摄像头的组成主要分为三部分:镜头、含传感器的处理芯片、外围电路板。

镜头主要就是一个凸透镜,透镜焦距越小越广角,同时桶形失真越严重;焦距越大,视角越窄,透镜越接近理想的“薄透镜”则可忽略桶形失真。

处理芯片将传感器上的电压信号按照已定义的协议输出。

外围电路主要提供电源、稳压、时钟等功能。

摄像头按照信号类型可分为模拟摄像头、数字摄像头两种。

由于单片机普通IO口只能读取数字信号,故对于模拟摄像头要设计模数转换(ATD)。

数字摄像头数据可以直接进单片机。

用模拟摄像头的缺点是要自己设计模数转换电路,同步信号分离电路。

优点是可以自行加入硬件二值化电路,即对某一个像素点只用1、0来表示黑、白。

摄像头按照传感器,可分为CCD、CMOS。

CCD成像质量好,贵。

CMOS 成像质量略差,便宜。

摄像头的选取从尽快实现,缩短开发时间的方面考虑,应购买数字摄像头。

典型的型号是OV7620(该型号是指处理芯片的型号)。

OV7620是CMOS数字摄像头,采用PAL制式,默认隔行扫描,默认YUV颜色空间输出(详见后文)。

长远考虑,应选取CCD模拟摄像头。

一来可以避免高速状态下的运动模糊,二来可以自行设计硬件二值化电路,FIFO电路等,大大降低CPU 运算压力。

摄像头信号协议介绍每秒超过24帧的连续图片即可形成动态的视频。

考虑到我国采用50Hz交流电,为了实现方便,摄像头被设计为每秒25帧,每帧耗时两个周期。

还是为了实现方便,每一帧图片被分为两半,每半帧耗时一个周期。

半帧的划分方式为:奇数行和偶数行各组成半帧。

即通常的电视机,每20ms奇数行的信息刷新一次,接下来20ms偶数行刷新一次,再20ms奇数行刷新一次……。

欧美采用60Hz交流电,摄像头每16.6ms刷新一次,被称为PAL制式。

摄像头拍摄的一帧画面被称为“一场”(field),一场又分为“奇场”和“偶场”,各称“半场”,合称“全场”。

像这样分奇偶场分别刷新的扫描方式被称作“隔行扫描”(interlace),某些摄像头支持“逐行扫描”(progressive),其意自见。

摄像头上位机说明

摄像头上位机说明

飞思卡尔智能车无线调试工具说明
1.上位机配置部分,选择相应的串口序号,选择波特率(推荐9600)打开串口即可
其中长为摄像头数据行,宽为列,阈值为进行简单二值化的临界值,如128,则<128显示黑。

上位机支持实时参数显示,支持图像显示,或者同时显示两者。

选中复选框即可。

2.上位机接图像接受部分
左图为原始图像,右图为二值化处理之后图像。

3.实时参数显示
其中,编码器脉冲,电机pwm ,舵机pwm 最
大显示数值为256*256,自定义数据 1234最
大显示数据256.(可用来调整pid 参数)。

4.速度曲线绘图
绘图原理是,每接收到一个编码器数值(实时参数),进行一次绘图,横坐标变化为△X,其他4值为纵坐标显示范围,如果想得到更好的显示效果,根据自身情况,调整横纵坐标即可。

5.下位机SCI初始化(如果代码不可复制,请下载Adobe Reader或SumatraPDF(推荐))
6.下位机发送部分
7.下位机接收部分
8.关于正版
试用版软件程序,功能有所限制,敬请原谅。

正版软件包括以下功能
1.简单二值化图像处理
2.曲线绘图功能全部开始(试用版仅限舵机PWM)
如欲购买正版软件,请访问/,将机器码告予店主即可。

购买用户将得到无限期技术支持和免费版本更新。

支持正版是我开发新版本的动力!谢谢。

智能化终端通讯协议

智能化终端通讯协议

智能化终端通讯协议1.车载终端默认参数
车载终端默认参数见表1。

表1车载终端默认参数
2.显示屏及语音提示
文字语音自动提示信息见表2。

表2文字语音自动提示信息
3.实时图像采集上报
实时图像采集上报表3。

表3实时图像采集上报
4.车载终端参数扩展
消息ID:0x8103/0x8104/0x8106/0x0104。

终端参数设置参数项定义及说明见表4。

表4终端参数设置参数项定义及说明
5.位置信息汇报扩展
消息ID:0x0200。

状态位定义扩展见表5至8。

状态发生改变需立即上报位置信息。

表5状态位定义扩展
表6位置附加信息定义扩展
表7报警标志定义扩展
表8配件状态标志定义扩展
6.图像数据上传扩展
消息ID:0x0801。

多媒体图像数据上传消息体数据格式扩展见表9。

表9多媒体图像数据上传消息体数据格式
7.设置圆形区域扩展
参数ID:0x8600,平台下行。

本条消息协议支持周期时间范围,如要限制每天的8:30~18:00,起始/结束时间设为:00-00-00-08-30-00/00-00-00-18-00-00,其他以此类推,区域属性定义扩展见表10。

表10区域属性定义
8.载重检测自动修正
消息ID:0x0F00。

载重传感器零点修正上报消息体数据格式见表11。

表11载重传感器零点修正上报消息体数据格式。

智能车——摄像头

智能车——摄像头

北京联合大学“启明星”第五届智能汽车竞赛设计方案队伍名称:参赛队员:带队教师:第五届北京联合大学智能汽车竞赛技术报告摘要:本文详细介绍了了一种基于摄像头传感的循迹自动行驶小车的方法。

使用了在汽车自动控制中使用较为广泛的一种单片机:Freescale MC9S12XS128 单片机。

智能车通过模拟摄像头获得黑线信息,再经过一定算法控制舵机和电机,实现转向和速度控制,最终实现循迹的功能。

关键词:循迹,摄像头,PID目录第一章引言 (4)1.总体设计 (4)第二章机械设计 (5)第三章硬件设计 (8)第四章算法设计 (10)4.1 图象处理算法 (10)4.1.1“二值化”算法 (11)4.1.2 “去噪”算法 (11)4.2 控制算法 (13)4.2.1 转向控制 (13)4.2.2 速度控制 (14)第五章调试部分 (17)5.1 开发工具 (17)5.2 软件调试 (17)5.3 无线调试模块 (19)第六章主要技术参数 (21)第七章结论 (22)7.1主要性能 (22)7.2 改进方向 (22)参考文献 (23)附录 (24)第五届北京联合大学智能汽车竞赛技术报告第一章 引言1.总体设计介于以往的循迹小车大部分都是基于光电传感器控制的,能够“规规矩矩”的在赛道行驶,因此我们这里尝试速度上的突破,采用摄像头控制来获得更高的速度和更好的前瞻性。

小车的基本工作原理为:以白色跑道为引导,通过mc9s12xs128来调整、控制小车的速度和转向,实现小车在赛道上平稳正确的行驶。

图表 1 总体工作流程图 其中最关键的部分为:道路信息采集、处理器对电机和舵机的控制。

道路监测器可有两类:光电传感器和摄像头传感器。

首先,考虑到道路监测要求的完整性及准确性,我们选择了摄像头.摄像头具有光电传感器无法比拟的前瞻性,能够对弯道提前做出判断,并且能够实现切内道和弯道直冲的效果以最大可能提高速度。

同时摄像头又可分为cmos 和ccd 两类,ccd 相对于cmos 来说分辨率及所得图像性噪比好,但耗电多,价格高;此外,跑道为黑白赛道,采集的图像只需要处理成两种信号,并且由于S12的AD 转换需要一定的处理时间,以致摄像头的分辨率也不可能太高,因此综合考虑,我们最终选择OV7620作为我们的路径检测传感器,其次,对于速度传感器,可供选择的方案较多,最终我们选用了精度比较高的接触式光电编码器。

飞思卡尔智能车竞赛摄像头组——技术报告

飞思卡尔智能车竞赛摄像头组——技术报告

"飞思卡尔"杯全国大学生智能汽车竞赛技术报告关于技术报告和研究论文使用授权的说明本人完全了解第八届"飞思卡尔"杯全国大学生智能汽车竞赛关保留、使用技术报告和研究论文的规定,即:参赛作品著作权归参赛者本人,比赛组委会和飞思卡尔半导体公司可以在相关主页上收录并公开参赛作品的设计方案、技术报告以及参赛模型车的视频、图像资料,并将相关内容编纂收录在组委会出版论文集中。

参赛队员签名:孟泽民章志诚徐晋鸿带队教师签名:陈朋朱威日期:2013.8.15摘要本文设计的智能车系统以MK60N512ZVLQ10微控制器为核心控制单元,通过Ov7620数字摄像头检测赛道信息,使用K60的DMA模块采集图像,采用动态阈值算法对图像进行二值化,提取黑色引导线,用于赛道识别;通过编码器检测模型车的实时速度,使用PID 控制算法调节驱动电机的转速和转向舵机的角度,实现了对模型车运动速度和运动方向的闭环控制。

为了提高模型车的速度并让其更稳定,我们使用自主编写的Labview上位机、SD卡模块、无线模块等调试工具,进行了大量硬件与软件测试。

实验结果表明,该系统设计方案可行。

关键词:MK60N512VMD100,Ov7620,DMA,PID,Labview,SD卡AbstractIn this paper we will design a smart car system based on MK60N512ZVLQ10 as the micro-controller unit. We use a Ov7620 digital image camera to obtain lane image information. The MCU gets the image by its DMA module. Then convert the original image into the binary image by using dynamic threshold algorithm in order to extract black guide line for track identification. An inferred sensor is used to measure the car`s moving speed. We use PID control method to adjust the rotate speed of driving electromotor and direction of steering electromotor,to achieve the closed-loop control for the speed and direction. To increase the speed of the car and make it more reliable,a great number of the hardware and software tests are carried on and the advantages and disadvantages of the different schemes are compared by using the Labview simulation platform designed by ourselves,the SD card module and the wireless module. The results indicate that our design scheme of the smart car system is feasible.Keywords: MK60N512VMD100,DMA,Ov7620,PID,Labview,SD card目录摘要 (I)Abstract (II)引言 (1)第一章系统总体设计 (2)1.1系统概述 (2)1.2整车布局 (2)第二章机械系统设计及实现 (4)2.1车体机械建模 (4)2.2车模转向轮的定位与调整 (5)2.3底盘高度及其调整 (6)2.4编码器的安装 (7)2.5舵机安装位置及结构调整 (7)2.6舵机转角分析 (8)2.7摄像头的安装 (8)第三章硬件系统设计及实现 (10)3.1硬件设计方案 (10)3.2电路设计方案 (10)3.2.1单片机最小系统板 (10)3.2.2电源稳压电路及检测电路 (11)3.2.3图像处理电路 (12)3.2.4电机驱动电路 (13)3.2.5舵机接口电路 (14)3.2.6拨码开关电路 (14)第四章软件系统设计及实现 (16)4.1赛道双边线提取及优化处理 (16)4.1.1原始图像的特点 (16)4.1.2普通赛道提线 (17)4.1.3特殊赛道提线 (19)4.1.4偏差量的计算 (21)4.1.5路径选择 (21)4.2 PID 控制算法介绍 (22)4.2.1位置式PID (23)4.2.2增量式PID (23)4.2.3各种改进型PID (24)4.2.4PID参数整定 (25)4.3转向舵机的PID控制算法 (25)4.4驱动电机的PID控制算法 (26)4.5速度决策算法 (26)4.6路径识别算法 (28)第五章系统开发及调试 (29)5.1开发工具 (29)5.2上位机图像显示 (29)5.2.1Labview 上位机 (29)5.3 SD卡模块 (30)5.3.1SD卡介绍 (30)5.3.2SPI总线介绍 (31)5.3.3硬件电路实现 (31)第六章模型的主要技术参数 (32)结论 (33)参考文献 (34)附录:程序源代码 (35)引言引言“飞思卡尔”杯智能汽车竞赛是受教育部高等教育司委托,高等学校自动化专业教学指导委员会负责主办全国大学生智能车竞赛。

智能车上位机----摄像头组协议

智能车上位机----摄像头组协议

智能车上位机全功能版-------摄像头组协议说明文档一、发送图像的协议:要想上位机能够正确显示下位机发送过来的灰度图像数据就必须注意以下几点:A.首先要确保上下位机设置的波特率要一致。

否则接收到的数据全部是乱的,此时上位机的状态是:接收到字节数,但显示全部丢失。

B.设置好上位机的图像大小,要保证跟下位机发送的图像大小一致。

图像宽度,即图像数组的总列数,图像高度,即图像数组的总行数。

如果上位机的图像大小跟下位机发送的不一致,那么此时上位机的状态将是:C.发送图像数据之前请先发送一个帧头0x01到串口。

D.发送图像数据的过程中,请你多加一个判断语句,如果当前要发送的图像数据跟帧头0x01一样,请你该发另一个数比如0x02。

(我们最好要这么样做,因为帧头是告诉上位机一帧图像的接收开始,当上位机接收到0x01时就要从0开始计数,当计数到一幅图像的大小后,如果再接收到一个0x01,就表明这幅图像完整接收了,中途中没有数据的丢失,这时候上位机才把这幅正确的图像显示出来。

否则,当上位机的计数尚未等于一幅图像的全部字节数又接收到一个0x01,就认为这幅图像是已经在传输中有丢失了。

此时上位机的处理是直接丢弃这幅不完整的图像,也许你可能要说干嘛要全部丢掉呢,把接收不足的字节数用0或者1任意一个字节来填充不就好了吗。

想法固然是好的,但是这是不可行的,因为我们不知道这幅图像数据到底丢失哪一部分,我们无法对这部分进行填充处理,假如我们填充的地方错误,那么图像将混乱不清,这时候对你的调试将带来无限的麻烦,不知道到底哪里出了问题的。

)E.在一幅图像数据全部发送完的后面再发一个0x01到串口,因为上位机接收的一幅图像的判断是前一个0x01后一个0x01中间长度恰好是一幅图像大小。

如果在一幅图像数据全部发送完的后面不发送0x01时,如果是连续发送过程,那么你将丢失最后的一幅图像,如果你只发一幅图像,那么上位机将显示不出任何图像。

上位机协议

上位机协议

校准电压:分2个区间校准:1500---3000:输入这个区间的K,B值 B 就是要求输出1500mv的偏差K就是斜率= (3000的测量值—1500的测量值)/1500 *1000,也就是放大1000倍这个数值写入EEPROM:格式为:06 00 01 05 35 04 01 01第一个表示:06 表示写电压的EEPROM第二个表示:00表示1500-3000的低电压区间,01表示3000-4500的区间第三个表示:01表示误差是正偏差,也就是比真实值大第4,5表示:K的值535 是K放大1000倍的16进制数据第6个表示:B的值3000—4500:同上格式为:06 01 01 1A 0A 06 01 01RIGHT校准电流:分2个区间校准:15ma以下直接加一个偏差,要是没有误差,或者在1ma以内,这个修正值可以不加15ma—500ma 直接算这个区间的K,B值B就是真实电流(安吉能表测试)是15ma的实际测量偏差,K=(500ma的测量值—15ma的测量值)/(500-15) *1000 放大1000倍;RIGHT设置电压:原来的协议01 06 09 C4 01 01 01 01 表示250001 06 0e 42 01 01 01 01 表示365001表示设置电压读取电压:02读取电流:读取温度值:以上我还没加从机的地址,其实是需要加地址的;框架就是校准-----设置-------读对象就是电压------ 电流------ 温度数据帧解析:06 :表示校准也就是往EEPROM里面写数据:00 :表示电压区间1500---3000的校准命令01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);0表示小于05 :35 :表示K的高位和地位04 :表示B的值01 :01 :表示地址的高位和地位06 :表示校准也就是往EEPROM里面写数据:01 :表示电压区间3000---4500的校准命令01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);0表示小于05 :35 :表示K的高位和地位04 :表示B的值01 :01 :表示地址的高位和地位06 :表示校准也就是往EEPROM里面写数据:02 :表示电流为15ma以下的01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);0表示小于05 :35 :无意义(也就是在这个区间不算K值,只算个偏差值)04 :表示B的值01 :01 :表示地址的高位和地位06 :表示校准也就是往EEPROM里面写数据:03 :表示电流为15ma-----500ma区间的01 :偏差的符号,1表示校准为测量值大于真实值(真实值高精度表测试);0表示小于05 :35 :表示K的高位和地位04 :表示B的值01 :01 :表示地址的高位和地位校准成功:返回:06 16设置:RIGHT设置电压:01 设置的命令01 表示设置电压的命令0F39 表示想设置的电压目标值,单位mv;01 任意值01 任意值0101 设置的模拟电池地址的高位和地位设置成功返回:01 16目前就是设置电压,还没有其他读取模式:读取电压:02 读取模式00 读取电压命令01 读取从机的地址信息01返回的信息:02000605读取的电压值0101读取的地址信息读取电流:02 读取模式01 读取电压命令01 读取从机的地址信息01返回的信息:02010606读取的电流值0101 读取的地址信息读取温度:02 读取模式02 读取电压命令01 读取从机的地址信息01返回的信息:02010607读取的温度值0101 读取的地址信息功能:码弄复杂点的主要意思就是防止上位机出现误动作设置电压:时间速率:大概在1秒以内,AD采样的时间已经达到最短;要再加快时间就要硬件上让电压更加接近,再看看那个递增的值,加100能增加多少电压;精度:1.5---4.5 区间之内能达1MV;上位机发送的21 12 01 需要的电压XX XX 数据长度5位附带地址:起符:21 12设置电压:01需要的值:XX XX返回21 12 01 16读取电压:精度可能会受单片机采集精度的影响,其实很简单,就是实际采样的值+或者减去一个偏差值,这个可以通过精度表测量测量,也许你设置了,但是末端没输出对吧,所以我觉得还是需要读电压的值的;上位机发送56 65 01 数据长度为3位附带地址返回56 65 01 电压值5个读取电流:分2个区间:15ma以下的;根据经验测量修正一个偏差,有的就不用修,1ma以内的不用修15—500的,K,B符号所以要让读取的电流精度尽可能的高,那么读取的数值必须要经过修正,传递给上位机的是比较精准的电流值上位机发送56 65 02 数据长度为3位返回:56 65 02 电流值读取温度:上位机发送56 65 03 数据长度为3位返回:56 65 03 温度值校准电压:2个区间:1500---300006 76 00 01 05 35 04返回:06 76 00 163000—4500上位机发送:06 76 01 01 1A 0A 06标示符:06 76校准电压:1500—3000 :00 3000—4500: 01电流15ma以下:03 15ma以上04正偏差:01 负偏差02K : 1A 0AB 6带地址,数据长度为7;返回:06 76 01 16校准电流:15ma以下:上位机发送:06 76 03 01 0115ma以下需要偏差符号及偏差,无K值;单片机返回:06 76 03 1615ma以上:上位机发出:06 76 04 01 00 29 01起始符:06 76校准电流高区间(15ma以上)04正偏差:(表示单片机测量值偏大) 01K (2个字节) 00 29B:01单片机返回:06 76 04 16设置电流()暂时不做;。

智能停车车场安全监控系统协议

智能停车车场安全监控系统协议

智能停车车场安全监控系统协议合同编号:__________第一章定义及术语1.1 本协议中,以下术语具有以下含义:1.1.1 “停车场”指甲乙双方合作建立的智能停车车场。

1.1.2 “监控系统”指甲乙双方共同投资购买的智能停车车场安全监控系统。

1.1.3 “甲方”指停车场运营方,负责停车场的日常经营管理。

1.1.4 “乙方”指监控系统供应商,负责监控系统的安装、维护及更新。

第二章合作目标2.1 甲方和乙方基于共同利益,达成如下合作目标:2.1.1 提升停车场的安全管理效率,保障车辆及人员安全。

2.1.2 利用智能技术,提高停车场的运营效益。

第三章权利与义务3.1 甲方权利与义务3.1.1 甲方有权要求乙方按照约定提供合格的监控系统,并保证系统的正常运行。

3.1.2 甲方应负责停车场的日常经营管理,包括但不限于车辆进出管理、收费管理等。

3.1.3 甲方应按照约定向乙方支付监控系统购买及维护费用。

3.2 乙方权利与义务3.2.1 乙方有权要求甲方按照约定支付监控系统购买及维护费用。

3.2.2 乙方应按照约定提供合格的监控系统,并保证系统的正常运行。

3.2.3 乙方应负责监控系统的安装、维护及更新,确保系统功能完善、安全可靠。

第四章系统安装与验收4.1 乙方应按照甲方的要求,在停车场内安装监控系统,并确保系统正常运行。

4.2 甲方应对乙方提供的监控系统进行验收,验收合格后双方进行签字确认。

4.3 如监控系统在验收过程中出现质量问题,乙方应负责修复,直至验收合格。

第五章质量保证与售后服务5.1 乙方保证所提供的监控系统符合国家相关法律法规及行业标准。

5.2 乙方承诺在监控系统安装后的一年内,对系统进行免费维护。

5.3 乙方应在监控系统出现故障时,及时进行维修,确保系统正常运行。

5.4 乙方应提供完善的售后服务,包括但不限于技术培训、操作手册等。

第六章系统使用与维护6.1 甲方应按照乙方提供的操作手册使用监控系统,并负责日常维护工作。

华高E3监控上位机协议V

华高E3监控上位机协议V

1概述本文所叙述的通信协议仅适用于本公司所生产的电力电源监控系统E3系列版本的产品。

物理接口:E3系列监控同时提供RS232和RS485通信接口,用户可任意选择其中之一与后台设备联机,注意,若选用RS485接口连接到电脑串行通信口,则需外加一个RS485-RS232转换头转接。

通信波特率支持1200bps、2400bps、4800bps和9600bps四种速率。

每一帧由10位(1位起始位,8位数据位,1位停止位,无校验位)组成。

在开始通信前,请先设定好监控系统的通信参数,如通信地址、通信速率和通信协议。

通信地址从1到99可选。

若用户选用ModBus规约,建议远程终端下发命令的时间间隔在5秒钟以上,波特率越低时间应适当延长。

在今后的产品升级过程中,本通信协议若有修改,恕本公司不另行通知,请及时垂询本公司或访问本公司网站。

2ModBus协议2.1遥测遥测1下传:➢START ADDR为一特定值,不可随便更改。

➢数据长度:指请求设备返回的遥测数据长度。

发送时高位在前,低位在后,不可超过指定长度(0x20)。

➢CRC校验:采用CRC16校验法,发送时低位在前,高位在后,计算方法请参阅下面章节。

遥测返回:遥测1返回DA TA定义:遥信下传:数据长度指遥信量长度,1个字节包含8个遥信量。

遥信返回:注:0为备用,1为工作;0为浮充,1为均充;0为正常,1为故障;0为开机,1为关机。

2.3遥调遥调下传:DATA REG定义:(高位在前,低位在后)遥调返回:2.4遥控遥控下传:举例:控制#2号模块关机:发送命令:01 0f 78 01 00 01控制#2号模块开机:发送命令:01 0f 78 00 00 00 遥控返回:2.5错误返回:2.6CRC16校验码计算方法CRC添加到消息中时,低字节先加入,然后高字节。

CRC简单函数如下:unsigned short CRC16(puchMsg, usDataLen)unsigned char *puchMsg ; /* 要进行CRC校验的消息*/ unsigned short usDataLen ; /* 消息中字节数*/{unsigned char uchCRCHi = 0xFF ; /* 高CRC字节初始化*/ unsigned char uchCRCLo = 0xFF ; /* 低CRC 字节初始化*/ unsigned uIndex ; /* CRC循环中的索引*/while (usDataLen--) /* 传输消息缓冲区*/{uIndex = uchCRCHi ^ *puchMsgg++ ; /* 计算CRC */ uchCRCHi = uchCRCLo ^ auchCRCHi[uIndex} ;uchCRCLo = auchCRCLo[uIndex] ;}return (uchCRCHi << 8 | uchCRCLo) ;}/* CRC 高位字节值表*/static unsigned char auchCRCHi[] = {0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,0x80, 0x41, 0x00, 0xC1, 0x81, 0x40} ;/* CRC低位字节值表*/static char auchCRCLo[] = {0x00, 0xC0, 0xC1, 0x01, 0xC3, 0x03, 0x02, 0xC2, 0xC6, 0x06, 0x07, 0xC7, 0x05, 0xC5, 0xC4, 0x04, 0xCC, 0x0C, 0x0D, 0xCD,0x0F, 0xCF, 0xCE, 0x0E, 0x0A, 0xCA, 0xCB, 0x0B, 0xC9, 0x09, 0x08, 0xC8, 0xD8, 0x18, 0x19, 0xD9, 0x1B, 0xDB, 0xDA, 0x1A, 0x1E, 0xDE, 0xDF, 0x1F, 0xDD, 0x1D, 0x1C, 0xDC, 0x14, 0xD4, 0xD5, 0x15, 0xD7, 0x17, 0x16, 0xD6, 0xD2, 0x12, 0x13, 0xD3, 0x11, 0xD1, 0xD0, 0x10, 0xF0, 0x30, 0x31, 0xF1, 0x33, 0xF3, 0xF2, 0x32, 0x36, 0xF6, 0xF7, 0x37, 0xF5, 0x35, 0x34, 0xF4, 0x3C, 0xFC, 0xFD, 0x3D, 0xFF, 0x3F, 0x3E, 0xFE, 0xFA, 0x3A, 0x3B, 0xFB, 0x39, 0xF9, 0xF8, 0x38, 0x28, 0xE8, 0xE9, 0x29, 0xEB, 0x2B, 0x2A, 0xEA, 0xEE, 0x2E, 0x2F, 0xEF, 0x2D, 0xED, 0xEC, 0x2C, 0xE4, 0x24, 0x25, 0xE5, 0x27, 0xE7, 0xE6, 0x26, 0x22, 0xE2, 0xE3, 0x23, 0xE1, 0x21, 0x20, 0xE0, 0xA0, 0x60, 0x61, 0xA1, 0x63, 0xA3, 0xA2, 0x62, 0x66, 0xA6, 0xA7, 0x67, 0xA5, 0x65, 0x64, 0xA4, 0x6C, 0xAC, 0xAD, 0x6D, 0xAF, 0x6F, 0x6E, 0xAE, 0xAA, 0x6A, 0x6B, 0xAB, 0x69, 0xA9, 0xA8, 0x68, 0x78, 0xB8, 0xB9, 0x79, 0xBB, 0x7B, 0x7A, 0xBA, 0xBE, 0x7E, 0x7F, 0xBF, 0x7D, 0xBD, 0xBC, 0x7C, 0xB4, 0x74, 0x75, 0xB5, 0x77, 0xB7, 0xB6, 0x76, 0x72, 0xB2, 0xB3, 0x73, 0xB1, 0x71, 0x70, 0xB0, 0x50, 0x90, 0x91, 0x51, 0x93, 0x53, 0x52, 0x92, 0x96, 0x56, 0x57, 0x97, 0x55, 0x95, 0x94, 0x54, 0x9C, 0x5C, 0x5D, 0x9D, 0x5F, 0x9F, 0x9E, 0x5E, 0x5A, 0x9A, 0x9B, 0x5B, 0x99, 0x59, 0x58, 0x98, 0x88, 0x48, 0x49, 0x89, 0x4B, 0x8B, 0x8A, 0x4A, 0x4E, 0x8E, 0x8F, 0x4F, 0x8D, 0x4D, 0x4C, 0x8C, 0x44, 0x84, 0x85, 0x45, 0x87, 0x47, 0x46, 0x86, 0x82, 0x42, 0x43, 0x83, 0x41, 0x81, 0x80, 0x40 } ;3CDT 通信规约 3.1 帧定义 帧结构:同步字:EBH 90H EBH 90H EBH 90H ,共6个字节 控制字:由6字节组成。

智能小车的通信协议

智能小车的通信协议
嵌入式智能小车 串行通信协议
V1.0 – 2010-3-31
嵌入式智能小车串行通信协议
目录
1 概述 ................................................................................................................................................................ 3
2.1.2 数据域...................................................................................................................................... 4
2.2 上行数据包 ............................................................................................................................................. 4 2.2.1 同步头...................................................................................................................................... 4
unspsunpluscomcn名称序号数据域长度传感器编码说明radar0x12超声波传感器返回2字节数据以小端格式传输表示障碍物距离cm为单位angle0x1a角度传感器返回2字节数据以小端格式传输表示当前小车的倾斜角度metal0x21金属传感器返回1字节数据0表示无1表示有lspeed0x2a左轮速度信息返回2字节数据以小端格式传输有符号数正数表示前进速度负数表示后退速度cms为单位rspeed0x32右轮速度信息返回2字节数据以小端格式传输有符号数证书表示前进速度负数表述后退速度cms为单位命令介绍控制命令由主控端发送至小车小车收到任何控制命令后均返回上行数据包进行回应
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能车上位机全功能版
-------摄像头组协议说明文档
一、发送图像的协议:
要想上位机能够正确显示下位机发送过来的灰度图像数据就必须注意以下几点:
A.首先要确保上下位机设置的波特率要一致。

否则接收到的数据全部是
乱的,此时上位机的状态是:接收到字节数,但显示全部丢失。

B.设置好上位机的图像大小,要保证跟下位机发送的图像大小一致。

图像宽度,即图像数组的总列数,图像高度,即图像数组的总行数。

如果上位机的图像大小跟下位机发送的不一致,那么此时上位机的状态将是:
C.发送图像数据之前请先发送一个帧头0x01到串口。

D.发送图像数据的过程中,请你多加一个判断语句,如果当前要发送的
图像数据跟帧头0x01一样,请你该发另一个数比如0x02。

(我们最好要这么样做,因为帧头是告诉上位机一帧图像的接收开始,当上位机接收到0x01时就要从0开始计数,当计数到一幅图像的大小后,如果再接收到一个0x01,就表明这幅图像完整接收了,中途中没有数据的丢失,这时候上位机才把这幅正确的图像显示出来。

否则,当上位机的计数尚未等于一幅图像的全部字节数又接收到一个0x01,就认为这幅图像是已经在传输中有丢失了。

此时上位机的处理是直接丢弃这幅不完整的图像,也许你可能要说干嘛要全部丢掉呢,把接收不足的字节数用0或者1任意一个字节来填充不就好了吗。

想法固然是好的,但是这是不可行的,因为我们不知道这幅图像数据到底丢失哪一部分,我们无法对这部分进行填充处理,假如我们填充的地方错误,那么图像将混乱不清,这时候对你的调试将带来无限的麻烦,不知道到底哪里出了问题的。


E.在一幅图像数据全部发送完的后面再发一个0x01到串口,因为上位机
接收的一幅图像的判断是前一个0x01后一个0x01中间长度恰好是一幅图像大小。

如果在一幅图像数据全部发送完的后面不发送0x01时,如果是连续发送过程,那么你将丢失最后的一幅图像,如果你只发一幅图像,那么上位机将显示不出任何图像。

发送灰度图像经典样例:
比如说你采集的图像尺寸为80*30,ImageData[HEIGHT][WIDTH]为二维数组存放图像,SendByte(c)为发送c到串口的函数
首先我们先打开上位机,设置好上位机的图像大小为80*30.
然后下位机的发送代码如下:
#define WIDTH 80 //图像宽度,即数组列数
#define HEIGHT 30 //图像高度,即数组行数
unsigned char ImageData[HEIGHT][WIDTH];
/////发送一帧图像的函数里面要写的代码开始////////////
//先发送帧头,发送0x01到串口
SendByte(0x01);
//发送图像数据
for(i=0;i<HEIGHT;i++)
{
for(j=0;j<WIDTH;j++)
{
//如果图像数据中跟帧头一样的数据,则改之。

// 避免图像数据与帧头冲突,导致上位机误判断为图像边界而
//引起的数据大量丢失的情况。

if(ImageData[j] == 0x01)
{
ImageData[j]=0x02;
}
SendByte(ImageData[j]);
}
}
// 最好在一帧图像数据发完后也要发一个帧头标志.
//避免只发一帧图像的时候上位机检测不到下一个帧头而显示不出图像//的尴尬局面。

SendByte(0x01);//发送0x01到串口
///////发送一帧图像的函数里面要写的代码结束//////////////////
二、只发图像中心线的协议:
A、问题描述:
我们发送的完整一幅图像数据的时候,由于数据量大,只能在前期调试和研究图像处理的时候有用处,但是当我们到后期调试的时候,我们就没有必要发送完整的一幅图像数据了。

我们只想看看我们对图像进行的中心线提取到底稳定情况如何。

所以我们只要发送提取到的中心线数据就行了。

因为中心线数据很少,所以可以让车边跑边发送中心线回来。

B、操作第一步:把上位机界面上的只接收中心线选项打勾。

C、设置好上位机的图像大小跟下位机的图像大小一致。

(说明:
因为上位机接收到一条完整的中心线后需要还原出这条中心线在这幅图像的位置。

如果没有设置,那么上位机还原出来的中心线位置就不是原图实际的中心线位置了。


C、下位机发送的数据格式如下:
首先先发两个字节0XFF 0XFF的帧头数据
然后再发送中心线数组:假如你的图像数组大小为:100列,50行。

那么你提取到的中心线将是一个50个字节大小的数组。

你只要再发送这50个大小的中心线数组数据就可以了。

此时整个发送数据有:0XFF 0XFF + 一个中心线数组。

相关文档
最新文档