花都升高车公司 升高车测深系统软件设计
新闻分类:行业资讯 作者:admin 发布于:2017-09-194 文字:【
大】【
中】【
小】
摘要:
花都升高车公司 升高车测深系统软件设计 花都升高车公司, 花都升高车, 花都升高车多少钱 硬件设计是系统功能实现的基础,而健壮、稳定运行的软件设计对于嵌入式系统设计同样重要。高质量的软件设计,可充分体现硬件性能,增强系统稳定性和可靠性。首先简要介绍了MCU的软件开发环境,然后依次对传感器节点和显控终端的软件设计进行详细说明。
AR开发环境对CC2530进行软件开发,选用IAREmbeddedWorkbench开发环境。它是由瑞典IARSystem公司研发的一个非常有效的集成开发环境(ID,集成了C/C++编译器、高级语言调试器、IARXLINKLiier连接器、IARXAR和XL旧建库程序和IARDLIBC/C++运行库等,适用于8位、16位和32位的微控制器,支持无硬件基础的软件调试,也支持基于硬件设备的实时在线调试。IAR集成了项目管理器,使用户可有效地开发并管理嵌入式应用工程,入口简单,使用方便。在IAR下进行软件开发的一般流程如下:(1)新建工程,从处理器库中找到目标芯片,配置编译环境:(2)编写源文件(C、C++或汇编语言);(3)编译、链接目标应用程序;(4)修改源程序中的错误;(5)调试应用程序,包括功能模块调试和系统联调。由于该系统的控制和计算分散到了传感器节点和显示终端共4个设备上,同时为了提高软件响应速度、避免片内RAM和FLASH的额外开销,在进行系统软件设计时并没有移植操作系统,选择采用嵌入式前后台系统设计方法。系统采用C语言在IAR开发环境下编程,首先配置微控制器参数,然后编写底层驱动和功能模块,最后编写系统整体的应用层程序。
传感器节点软件总体设计, 传感器节点主要用于采集升高车动臂、斗杆和铲斗的倾角值,需要实现传感器数据采集、倾角计算、锂电池电量检测和无线通信等功能。传感器节点和显控终端间通过2.4G的无线通信网络实现数据交换。传感器节点的软件设计总体结构。首先进行初始化,包括时钟初始化、定时器始化、中断初始化、MPU6050初始化、射频模块初始化等。然后进入while(l)循环,采集传感器MPU6050数据,采用数据融合算法计算倾角,并采集锂电池电量。湿控终端发送数据采集命令,传感器节点接收到命令后将测量值返回给显控终端。
测试用串口模块程序设汁, 本系统的UART模块主要用于与计算机通信,实现系统数据的输出,便于调试和观察系统的运行情况。CC2530带有两个串行通信接口USARTO和USART1,通过寄存器配置使其运斤于同步SPI模式或异步UART模式。本文中选用USARTO用于UART模式,引脚P0.2为RX,引脚P0.3为TX。CC2530串口操作需要如下步驟:1)配置10引脚,使用外设功能,此处配置P0.2和P0.3用作串口UART;2)配置串曰的控制和状态寄存器,设置USARTO用作UART方式;(3)配置串口参数,包括波特率、奇偶校验方式、数据位长度、起始位和停止位电平、停止位个数、传送位顺序等。其中波特率由寄存器UxBAUD卫AUD. (4)将对应的串口接收/发送中断标志位清0,接收/发送一个字节都将产生一个中断,在接收时需要开总中断和使能接收中断,及运行接收。
传感器节点和显控终端均采用锂电池供电,为保证系统正常工作,需要监测锂电池的电量。将锂电池电压经分压后输入微控制器CC2530进行AD转换,通过转换结果监测锂电池电量。AD转换包括AD模块初始化、滤波及物理量回归等步骤,下面进行诗细介绍。〇)AD模块始化:首先配置AD启动选择方式、有效位数、参考电压和模拟数据输入通道,然后启动AD转换,根据标志位判断AD转换是否完成。其中,CC2530的ADC功能的参考电压有4种选择:内部生成的1.15V参考电压、AVDD5引脚电压、AIN7引脚输入的外部电压或者AIN6-AIN7引脚输入的差分电压。本文中选择内部1.15V参考电压,14位分辨率,AD模拟量输入通道为引脚P0.1。(2)在采集模拟量过程中会因为设备自身因素或者外界干扰导致测量结果有偏差,为了减少结果的偏差,需要对采样的结果进行滤波。本文中选用算术平均滤波方法,根据多个采样值计算算术平均值,减少随机干扰产生的误差。在得到经滤波后的采样值后,需要将该采样值转换成实际的物理量,方便对设备的状态做出判断。本设计中需要对锂电池电压进行检测,结合3丄4节图3.4,锂电池电压经过电阻R1和R2分压输入MCU的AD输入通道。采样结果保存在两个8位的寄存器ADCL和ADCH中。设锂电池电压为V,AD采样值为Vcon,由于采样值是实际有效值为高12位,因此计算时需要进行移位操作,如式(4.2)所示,传感器MPU6050实现倾角测量,MPU6050提供了IIC接口与外部设备进行通信。主控制器CC2530没有IIC的外设接口,使用2个普通I/O引脚模拟IIC时序;读取传感器测量结果后,通过滤波算法实现加速度计和陀螺仪数据融合,计算升高车动臂、斗杆和铲斗的倾角。
花都升高车公司, 花都升高车, 花都升高车多少钱
C总线是由PHILIPS公司开发的两线式串行总线,两线即串行数据线SDA和串斤时钟线SCL。IIC支持一主多从,即一条IIC总线上可以挂载多个设备,每个设备既可以作为主机,也可以作为从机。每个设备都有一个nc通信地址,在通信时,判断收到的数据中地址与自身地址是否一致来区分多个设备。IIC的通信速率分为标准模式lOOKHz、快速模式400KHZ和高速模式3.4MKHZ。MPU6050支持的最高IIC速率为400KHZ,在软件实现时,设置的IIC速率不能超过该值。IIC协议通过起始信号和停止信号作为一次通信开始和停止的标志,起始信号定义为:当SCL保持离电平时,SDA产生一个从高电平到低电平的跳变;停止信号定义为;当SCL保持高电平时,SDA产生一个从低电平到高电平的跳变。IIC通信以1个字节8位为单位进行数据传输,一次通信过程可收发单个或连续多个字节。每个字节传输完成后,都需要一个应答信号ACK。ACK的时钟由主机产生,从机通过拉低数据线并保持低电平来产生ACK信号。如果从机处于忙碌状态,它可以拉低SCL,让主机处于一个等待状态。当恢复正常的数据传输时,释放时钟线。在向MPU6050写数据时,主机先产生一个开始信号,接着发送7位地址和1位R/W读写标志位,表示往MPU6050寄存器写数据。在第9个时钟高电平时,从机产生ACK信号。当主机检测到ACK后,将需要写入MPU6050寄存器的地址发送到SDA上,等待从机确认。收到从机的ACK后,发送需要写入该寄存器的值,并等待从机确认。最后主机发送一个结束信号结束此次通信。连续写时序与单次写时序类似,如图4.4所示。在连续写时,当寄存器RA被写入第一个数据时,从机的寄存器地址会自动递増,指向下一个要写入数据的寄存器地址。 主机先发送一个起始信号,再发送从机地址和写标志,然后发送需要读的寄存器地址。从机应答后,再次发送起始信号,发送从机地址和读标志,收到从机ACK后,主机进入接收数据的状态。如果是单次读,则收到数据后个NACK信号和结束信号结束此次通信。连续读时在未收到最后一个字节前,主机每收到一个字节数据,都需要发送应答信号ACK给从机。CC2530没有lie接曰,使用2个普通I/O模拟lie实现。首先将MCU的引脚P0.4和P0.5定义为SCL和SDA,配置IO曰方向选择寄存器P0DIR,SCL始终作为输出,SDA在IIC驱动程序中修改。根据IIC的读写时序,编程实现上述功能,主要函数如表。参数为从机地址、寄存器地址,返回值为从机返回的寄存器数据。
花都升高车公司, 花都升高车, 花都升高车多少钱