Analysis
2017/8/17 16:28:02
电路开发需求
1 使用STM32F103VB系列开发
2 读取线阵CMOS传感器数据(型号我们指定,256像素,提供使用说明和时序图),ADC芯片采用ADS1115,16位
3 获取角度传感器数据(型号ADXL345,我们提供可以直接使用的工作原理图和C代码),校准数据保存在串行EEPROM AT24C中。
4 模数转换48个光强二极管信号,这48个二极管被安置在附属子电路板上,每16个传感器由1个独立的单片机控制,与主电路单片机通过ttl串口通讯传递数据。光强二极管型号sg-S1223V(可见光)
单片机采用STM32F103VB,一共分为3组,每组由1个STM32F103VB控制,每组有16个传感器,ADC直接用STM32F103VB的16通道ADC完成。组与组之间通过2路TTL串口串联通讯,1路为上行串口,1路为下行串口,3组通过上行和下行串口串联起来,通讯协议如下:(\r为换行符)
说明 上级 下级
握手 A\r A\r
获取数据 D\r 自己的模块有16组电压数据,数据格式为X.XX,整数为1位,小数为2位,共16组,之间由英文逗号隔开。同时,向下级发送D指令获取数据,并将下级的数据附在后面进行上传。例如此模块有1个下级模块,则一共需要上传32组数据,如果有2个下级模块则上传48组数据,最多有3个下级模块即一共最多上传4*16=64组数据。
意思就是逐级获取数据后上传,是否有下级模块可以通过握手指令A在上电工作后进行获知,注意一点是所有模块都是同时上电工作。
5 获取温度传感器DS18B20(代码网上有大量的参考)
6 主单片机有一路ttl通讯,通讯协议如下: (\r为换行符)
说明 主机发送 从机返回
握手 A\r A\r
获取硬件版本号 V\r V=XXX\r
获取线阵CMOS数据 O\r O=返回光谱数据包\r(如果包比较大需要进行分包发送)
设置线阵CMOS积分时间 S=XXXX\r S=XXXX\r 将积分时间再发送回去
获取三轴角度传感器数据 Z\r Z=XXX.X,XXX.X,XXX.X\r,分别是XYZ三个轴的角度值,每个值的格式是三个整数一个小数,XYZ之间由英文逗号分隔
设置此时的角度数据为水平基准,并保存到EEPROM中 C\r C\r
获取48个光强二极管信号 P\r P=48个光强信号数据包\r(如果包比较大需要进行分包发送)
7 电源管理,供电采用锂电池,和5V供电,电源管理芯片型号TP5400,我们提供可以直接使用的工作原理图
8 程序代码要求规范,重要变量和函数的作用要进行注释,重要语句要进行注释
9 电路设计要布局合理,2层布线,面积尽量小
10 验收内容包括功能验证,稳定性验证,原理图,PCB图,元件清单,重要芯片说明文档,工程代码,程序完整性,代码规范性和注释
11 未尽事宜讨论协商