应力波扩频通信系统实现(一)——控制器设计

现在开始讲述信源设计,该部分主要工作是设计传感数据采集装置,项目中以温度为对象。

单片机选型必须综合考虑性能和价格,身为硬件开发菜鸟,选用便宜易开发的51单片机,包括预选和终选两个步骤:

  • MIPS(每秒钟百万条指令),预选单片机,预计该单片机处理一段代码需要的时间为t1,编写完代码后,使用如下方法查看实际代码运行时间(使用keil的调试模式查看代码运行时间(以51单片机代码为例),应该注意处理器倍频时机器周期的缩短,此处晶振应该填倍频后的数值),假定为t2,希望t2<t1,且越接近越好,如果t2>t1,要不晶振倍频,要不更换最小机器周期更短的单片机;
  • ROM和RAM,先用如下方法(KEIL MDK 查看代码量、RAM使用情况--RO-data、RW-data、ZI-data的解释)计算程序运行需要的ROM和RAM的大小,估计片内ROM和RAM是否够用,如果不够用,则需要使用片外ROM和RAM,或者更换片内ROM和RAM更大的单片机;
  • 引脚数量和功能(I2C,UART,AD/DA等),秉承适度够用的原则即可;
  • 根据具体情况,需要额外考虑功耗、工作温度、供电电压等,一般可靠性为军用级>工业级>民用级;
  • 土豪可以无视以上步骤,哪个贵选哪个一般没什么大问题。

晶振是单片机最小系统能否稳定工作的关键,也是最小系统频率最高的电路,需要认真对待以下两点:

  • 采用温度稳定性好的晶振,实际购买晶振时除频率和推荐电路外,很可能不知道更多的信息,此时需要对晶振进行残酷的测试,测试方法见单片机晶振电路设计资料
  • 考虑最差的运行情况(温度变化剧烈、振动严重、静电干扰复杂等等),使用铺铜缩小晶振环路面积、晶振外壳接地、适当增大焊盘等等,晶振电路案例及分享里分享了典型晶振电路的原理及常见问题。

复位电路可采用专门的复位芯片,经费不足则使用RC电路,注意任何电容只要充电就需要放电,因此需要设置回路给RC复位电路的电容放电,一般反并联二极管即可。

由于测温精度要求不高,简单地使用多个DS18B20并联测温,需要注意:

  • 读取多个传感器温度的方法见DS18B20多ROM搜索并读取温度,别懒,DS18B20数据手册-中文版一定要看,没时间钻研或者IO口多得蛋疼就使用多个IO口;
  • 部分单片机IO口寄存器更新需要时间,因此每次写引脚需要延迟一小段时间,保证写引脚稳定;
  • OneWire与I2C结构类似,为OC门,需要上拉电阻,保证输出高电平稳定,上拉电阻的取值与频率和总线长度有关,具体可见I2C 上拉电阻选择计算公式

硬件采用串口与上位机通讯,方便调试,需要认真读一读串口公头母头及232接法RS232串口线接口及接法RS232,注意:

 

  • 计算机一般采用公口,设备一般采用母口,注意接口的定义是针对公口的,所以母口的连线是2-发送数据、3-接收数据,与公口刚好相反(PCB封装选错的记得改回来),所以计算机和设备需要标准连线,计算机与计算机之间需要交叉连线,设备和设备好像就算连线也不能用吧;
  • PCB布线时需要走差分线,方法见利用Protel (Altium Designer)进行差分线布线
  • 鉴于现在的计算机大多不提供物理串口接口,要用转接口将USB转换为串口,这时需要检测转换信号是否遵循严格的公口的定义(检测输出电平即可);
  • 所有的连线在使用前都必须检测是标准连线还是交叉连线,最好不要剖开连线强行改装;
  • 有时候不知道是软件错了,还是硬件错了,可以下载VSPD虚拟串口排除是否软件Bug。

----转载需获得Wayne Khou同意----

posted on 2017-06-12 19:41  TotallyNewUser  阅读(159)  评论(0编辑  收藏  举报