- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机设计的门禁系统
基于单片机设计的门禁系统/邮件群发摘要:设计要求:基于单片机,具有通话、振铃、摘机、通话、开锁功能,还要有键盘和显示电路设计思路:1、系统用到AD、UART、PWM、SPI,考虑成品的体积,采用arduino nano 2、语音采样使用驻极体麦克风,经200倍前置放大,再进行8位AD采样,采样率8kHz,可达到电话音质,满足需求 3、门禁系统通信的特点是多对一,距离10~100m,通信速率要满足语音通信、控制信号传输,因此采用485通信,通信速率512Kbps 4、语音播放使用8位PWM,功放芯片采用常见的LM386 5、显示屏采用Nokia5110,SPI通信 6、键盘采用10位ADC键盘,16个按键 7、开锁电路使用继电器实现 ? 硬件设计1、Arduino Nano 主控直接采用arduino nano,由于485通信和下载程序共用0、1脚,因此要通过拨码开关切换0、1脚功能 ? ?? 2、电源电路 整个系统使用外部12v电源供电,用于驱动继电器和LM386,12v电源通过LM2940得到5v电源,Nokia5110显示屏需要3.3v供电,直接采用nano上的3.3v电源 ? ?? 3、ADC键盘电路 由于arduino接口较少,直接采用ADC键盘,一次挂载20个按键没有问题,每个分压电阻使用1kΩ,线性度非常不错。 ? ?? 4、485通信电路 使用了两片MAX485组成了全双工通信,实际测试,10m网线,2Mbps,完全不丢包,另外测试过2m,2Mbps的串口通信,也是完全不丢包 ? ?? 5、麦克风采样电路 语音采样,使用普通驻极体麦克风,经过LM358的200倍放大后,送入ADC ? ?? 6、功放电路 功放直接采用常见的LM386典型电路,PWM信号经过积分电路,再送入LM386,为了提高音量,使用12v供电,实测效果不错,5v供电时,噪音非常大,稍微一大声就失真 ? ?? 7、开锁电路 开锁功能可以通过电磁锁实现,这里只用了继电器并留出了接线口,继电器电流也不小,保险起见使用了一个9014扩流,并反向并联一个二极管吸收反向电流 ? ?? 画好原理图之后就是排版画pcb了: ? ?? 检查无误后开始做板子,既然要语音通信,那肯定是至少要做两个啦: ? ? ? ? ?? 然后再焊接调试: ? ? ?? 虽然做板前仔细检查了很多遍,但还是出了几个bug,还好是小问题,两根飞线解决 ? 程序设计 整个系统包括了以下几个程序文件: EG_V0_3: 主程序,包括了功能定义、ADC初始化、定时器初始化、键盘输入处理、显示界面、数据通信处理、中断采样 ADC_KEY:按键识别,主要是建立10位ADC值和每个按键的映射关系,参考了马潮老师的状态机程序 CRC8:CRC校验程序,为了保证通信的正确性,必须使用数据校验,crc8非常有效,不过实际测试,没有crc校验的情况下好像数据几乎没有传输错误?? Nokia5110:显示屏驱动程序,直接使用论坛里的代码,具体哪个帖子忘了。。 rs485:包括485初始化、定时器1初始化、485通信协议、通信处理等 ringtone:实现呼叫、接听、振铃功能 ? 程序设计思路 本系统的核心就是语言采样播放+485通信协议,由于处理的数据量比较大,所以很多地方没有用到arduino提供的方法,比如analogread、analogwrite、serial等 语音采样与播放: 人说话的频率为300HZ~3KHZ,根据采样定理,采样频率应该大于6KHZ,在这里取7.8KHZ(atmega直接分频可得到),为了减少开发难度,没有使用音频压缩。Timer2开启溢出中断,中断频率7.8KHZ,语音采样、键盘值采样、PWM更新都放在这里,同时使用Timer2的OCR2B作为PWM输出。ADC工作在自动连续转换模式下,ADC工作频率为76.9KHZ,测试过更高的频率,200KHZ以上的采样速度,误差非常大,容易导致按键误判和语音噪音。 ? 485通信: 采用了两片485芯片,一片工作在接收,一片工作在发送,语音采样的数据量为8bit*8KHZ=64Kbps,由于需要同时传输地址、语音数据、控制命令、校验码,一次传输数据量为3~6字节,因此波特率至少为192Kbps,保险起见,本系统采用了512KHZ。 由于需要传输多种数据,所以必须要使用一种通信协议,基于485的通信协议为: 1、主机以广播的方式向所有从机发送一个地址数据,寻找此地址的从机,该从机收到后发送应答命令,之后建立通信,从机与从机不能进行通信 2、从机不能主动发起对话,只能等待主机发送数据 3、一个帧结构如下: ? (1)[FUNCTION_VOICE,语音数据,CRC校验],3个字节 ? (2)[FUNCTION_COMMAND,COMMAND
文档评论(0)