毕业设计基于STM32系列单片机的门禁读卡器功能测试仪设计1_第1页
毕业设计基于STM32系列单片机的门禁读卡器功能测试仪设计1_第2页
毕业设计基于STM32系列单片机的门禁读卡器功能测试仪设计1_第3页
毕业设计基于STM32系列单片机的门禁读卡器功能测试仪设计1_第4页
毕业设计基于STM32系列单片机的门禁读卡器功能测试仪设计1_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于基于 stm32stm32 系列单片机的门禁读卡器功能测试系列单片机的门禁读卡器功能测试仪设计仪设计 摘摘 要要 本设计是基于 stm32 系列的单片机进行的对 sxg 系列门禁读卡器的功能测试。 在设计的同时对 stm32 单片机的理论基础和外围扩展知识进行了比较全面准备。 对 sxg 系列门禁读卡器的功能测试在硬件与软件方面进行同步设计。硬件部分主要 由 stm32f107vct6 微处理器、led 显示电路、jtag 下载电路、电源转换电路、 韦根通信电路、以及电机控制电路等组成,系统通过 led 和米字型 led 显示测试 结果,所以具有人性化的操作和直观的显示效果。软件方面主要包

2、括系统进入停止 模式和退出停止模式、韦根通信、控制电机、键盘测试等。本系统以 c 语言进行软 件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关 系更加简洁明了,以便更简单地实现对 sxg 系列门禁读卡器的功能测试。所有程序 编写完成后,在 keil 软件中进行调试, 确定没有问题后,焊接硬件测试 sxg 系列门 禁读卡器。 关键词 stm32f107vct6 韦根通信 电机控制 the design of the access control reader function tester abstract taking the sxg series of access

3、control reader for research object ,this paper designed the function tests which based on the series of stm32 microcontrollers. the theoretical basis of the stm32 mcu and peripherals expand your knowledge in the design, while a more comprehensive preparation. sxg series access functional test of the

4、 reader hardware and software aspects of the synchronous design. the hardware part is mainly microprocessors by stm32f107vct6, led display circuit, jtag download circuit, the power conversion circuit, wiegand communication circuit, and motor control circuit and other composition, the system led-segm

5、ent led displays the test results, so humane operation and intuitive display. the software system enters stop mode and exit the stop mode, wiegand communications, control, motors, keyboard testing. the system software design in c language, in order to facilitate the expansion and change, the softwar

6、e design is modular in structure, programming logic is more concise, in order to more easily achieve the functional testing sxg series access card reader. all programs after their completion, in keil software for debugging, there is no problem, welding sxg series access card reader hardware testing.

7、 key words stm32f107vct6 wiegand communication motor control 目目 录录 中文摘要.i 英文摘要.ii 1 绪论.1 1.1 引言.1 1.2 主要任务.2 1.3 主要技术指标.2 1.4 门禁读卡器功能测试仪的国内外发展现状与趋势.2 2 设计方案论证.3 2.1 控制器芯片的选择方案和论证.3 2.2 显示模块选择方案和论证.3 2.3 下载方式的选择方案和论证.4 2.4 电路设计最终方案确定.4 3 硬件设计.6 3.1 电源设计.6 3.2 晶振电路.6 3.3 复位电路.7 3.4 开始按键电路.7 3.5 韦根通信电路

8、.8 3.6 jtag 下载电路.8 3.7 电机控制电路.9 3.8 主电路设计.10 4 软件设计.12 4.1 主程序设计.12 4.2 系统初始化.14 4.3 系统自检.15 4.4 开始键设为中断模式.15 4.5 进入停止模式.16 4.6 配置系统时钟.16 4.7 电机控制.17 4.8 韦根通信测试.17 4.9 按键测试.19 5 系统调试.20 5.1 软件调试.20 5.2 硬件调试.20 结束语.22 致 谢.23 参考文献.24 附 录.25 附录 1 硬件电路图.25 附录 2 pcb 板.27 附录 3 主程序源代码.28 1 绪论 1.1 引言 随着经济的蓬

9、勃发展,外来人员增多,出租屋租住人员的流动性更大,如何杜 绝闲杂人员的进入,加强出租屋的技术防范水平。传统机械锁在使用过程中存在以 下问题:都采用一把钥匙一把锁,钥匙易被仿制;钥匙丢失后存在安全严重隐患; 人员流动导致钥匙流失而无法控制;有的出租屋,更换一个人就要更换几套机械锁; 几乎所有的机械门锁,对上门开锁者,都是很容易打开的。出入口处安装刷卡门禁 系统1,一人一卡,所有租住人员都必须凭卡出入,即使租户钥匙扣卡不慎丢失, 只要将他的卡号通过遥控器直接删除,该卡立即在本锁使用无效,业主不用换锁, 即经济又安全。 出入口门禁安全管理系统是新型现代化安全管理系统,它集微机自动识别技术 和现代安全

10、管理措施为一体,它涉及电子、机械、光学、计算机技术、通讯技术、 生物技术等诸多新技术。它是解决重要部门出入口实现安全防范管理的有效措施。 适用各种机要部门,如银行、宾馆、机房、军械库、机要室、办公间、智能化小区、 工厂等。在数字技术网络技术飞速发展的今天门禁技术得到了迅猛的发展。门禁系 统早已超越了单纯的门道及钥匙管理,它已经逐渐发展成为一套完整的出入管理系 统。它在工作环境安全、人事考勤管理等行政管理工作中发挥着巨大的作用。 门禁系统中读卡器2是最外围设备,担负着读取卡片信息、人机界面交互、数 据校验上传等一系列功能,其重要性不言而喻。读卡器要具有安全性、稳定性、外 型美观及环境和谐、人机界

11、面友好、安装调试的经济与便捷、节能环保设计的特点。 英格索兰的 sxg 系列 cpu 智能卡读卡器具有这些特点,采用多技术,支持 125khz 低频卡和 13.56mhz 高频卡;阅读距离远:7.6cm(125k);7.6cm(iso15693);兼容非 接触 cpu 智能卡等多种格式:hid proximity;infineon my-d 安全扇区;hid iclass、infineon my-d、philips i-code、desfire、mifare 序列号; desfire、mifare 扇区,复旦微电子 fm1208 cpu 卡安全文件;具有防拆保护,3 态 led(红、绿、琥珀)

12、可视化指示灯及声音反馈,显示工作状态及动作信息;广 泛使用于银行、办公楼、建筑工地、交通、电力、军队、学校、医院等门禁应用场 合。 1.2 主要任务 本文设计的测试仪可检测英格索兰的 sxg6701k、sxg6501、sxg5501、sxg4501、sxg4001、sxg5001 型号的读卡器, 利用 stm32f107vct63进行控制,led 显示测试结果,可广泛应用于英格索兰的 sxg 系列 cpu 智能卡读卡器的生产工厂,自动化工作,可减少员工的工作量。因 而,此设计具有相当重要的现实意义和实用价值。 1.3 主要技术指标 (1)工作温度范围: -20c 到 +80c; (2)测试设备

13、支持 sxg6701k,6501,5501,4501,4001,5001; (3)不工作时进入停止模式4,节省能耗; (4)支持韦根 26 位、34 位(带校验),以及 4 位(不带校验); (5)键盘测试时,能够自动运行。 1.4 门禁读卡器功能测试仪的国内外发展现状与趋势 门禁读卡器是门禁系统的重要组成部分,是门禁系统信号输入的关键设备,其 安全性和可靠性是不言而喻的。门禁读卡器的读卡技术多种多样,种类又很多。目 前门禁读卡器功能测试仪主要是针对各公司的产品进行制造的,种类单一,兼容性 不强,这样导致读卡器生产商要采购多种测试仪才能满足检测需要,增加了成本。 有些测试仪为了节省成本,使用简

14、单功能的微处理器,没有低功耗模式,耗电量大。 也有些测试仪界面不够友好,使用者需要学习一段时间才能操作,降低了生产商的 生产效率。为了改善以上的不足,未来的门禁读卡器功能测试仪将朝着多功能化发 展,将支持目前市面上主流的读卡技术校验,能够自动运行,支持更多型号的读卡 器,具备键盘测试,外型美观及环境和谐,人机界面友好,可使使用者快速掌握使 用方法。节能环保也将是今后读卡器功能测试仪发展的重要趋势,不工作时处于休 眠状态,降低功耗。以后的门禁读卡器测试仪也将更加的安全和稳定。 2 设计方案论证 2.1 控制器芯片的选择方案和论证 方案一: 采用 89c51 芯片作为硬件核心,采用 flash r

15、om,内部具有 4kb rom 存储空 间,能于 3v 的超低压工作,而且与 mcs-51 系列单片机完全兼容,但是运用于电路设 计中时由于不具备 isp 在线编程技术5, 当在对电路进行调试时,由于程序的错误 修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的 损坏。 方案二: 采用 stm32f107vct6,片内具有 64kb 的 ram 和 256kb 的 rom,存储空间 大不需要外扩存储芯片;工作温度范围:-40c 到 +85c,满足工业现场;支持的接 口类型多,包括 usb、usart、spi、i2c、can6,便于以后升级;电源电压最大 3.6v,最小 2

16、v;支持 jtag7,具有在线调试功能;具有在线编程可擦除技术,当 在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时, 不需要对芯片多次拔插,所以不会对芯片造成损坏。 所以选择采用 stm32f107vct6 作为主控制芯片。 2.2 显示模块选择方案和论证 方案一: 采用 led 液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示 多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用 led 液晶显 示屏。 方案二: 采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于 显示文字比较适合,如采用在显示数字显得太浪费,且价格也相

17、对较高,所以也不用此 种作为显示。 方案三: 采用米字型 led 显示,米字型 led 价格适中,单个就可以显示所有的数字和 英文字符,接线方法简单。 所以采用了米字型 led 作为显示。 2.3 下载方式的选择方案和论证 方案一: 通过串口下载程序,首先要将 stm32f107vct6 的启动模式8设置为 systemboot,而默认的启动模式是 userboot,在 systemboot 模式下,stm32 在复 位后不会执行用户代码,而是等待串口更新程序。程序运行时,需要将启动模式设 置为 userboot 模式,复位芯片。 方案二: 通过 usb 接口下载程序,首先要将 stm32f1

18、07vct6 的启动模式设置为 systemboot,而默认的启动模式是 userboot。程序下载成功后,需要将启动模式设 置为 userboot 模式,复位芯片即可看到程序运行的现象。 方案三: 通过 jlink 下载程序,不需要改变启动模式,jlink 仿真器支持的处理器多, 与主流的开发环境完美结合。通过 jlink 仿真器,可以方便地下载和在线调试代码。 所以采用 jlink 下载程序。 2.4 电路设计最终方案确定 综上各方案所述,对此次作品的方案选定:以 stm32f107vct6 为主控制器,通 过 jlink 仿真器下载和调试程序,led 指示灯显示测试结果,米字型 led

19、显示键 盘测试结果。 主电路采用 stm32f107vct6 作为主芯片,包括复位电路、开始按键电路、电 源模块、jtag 下载电路、led 工作指示灯电路、米字型 led 显示电路、韦根通信 电路、电机控制电路和按键测试电路。电路设计框图如图 2-4 所示: stm32f107vct6 复位电路 开始按 键电路 电源模块 led 工作指 示灯电路 米字型 led 显示电路 韦根通信电路 jtag 下载 电路 按键测试 电机控制 电路 图 2-4 电路设计框图 3 硬件设计 3.1 电源设计 在这里因设计分工和侧重点不同,电源模块先采用通用的电源将 220v 的交流 电转换成 12v 的直流电

20、,然后 12v 的电源一方面给英格索兰的 sxg 系列 cpu 智能 卡读卡器供电,一方面给本设计的测试电路供电。上电后,电源工作指示灯 led5 亮,然后经过 c4、c5 电容滤波输入到 lm1117,通过电压调节器 lm1117 调节后输 出 3.3v 的电压,再经过 c6、c7 电容滤波,最后输出稳定的 3.3v 电压。如图 3-1 所 示: c4 100nf c7 100nf +c5 10uf +c6 10uf +12v+3.3v 1 2 j1 pow er in 1 2 cn1 pcba power +12v g nd l ed 5 l ed r23 2k v in 3 gnd 1

21、v out 2 u 2 l m1117 d 5 4004 +12v 图 3-1 电源设计 3.2 晶振电路 单片机必须在时钟的驱动下才能进行工作,stm32f107vct6 内部含有一个 8mhz 的 rc 振荡器,但精度较差,通常使用外部高速时钟信号。外部 25mhz 的高 速时钟首先经过时钟配置寄存器 2 的 prediv2 分频因子进行 5 分频,然后经过 pll2 倍频因子 8 倍频后,再经过 prediv1 分频因子 5 分频后得到 8mhz 的时钟, 然后经过时钟配置寄存器的 pll 倍频系数 9 倍频后,输出精确的 72mhz 时钟。如 图 3-2 所示: 图 3-2 晶振电路

22、3.3 复位电路 在系统运行的过程中,有时可能对系统需要进行复位,为了避免对硬件系统经 常加电和断电造成的损害,设计了手动的复位电路,如图 3-3 所示。这种电路的设 计,在系统的运行过程中需要复位时,只需使开关闭合,在 nrst 端就会出现一定 时间的低电平信号,从而使 stm32f107vct6 单片机实现复位。 图 3-3 复位电路 3.4 开始按键电路 系统启动时先进行自检,然后进入停止模式,节省能耗。需要工作时,按下开 始按键产生中断,唤醒系统,系统进入正常工作模式,开始正常工作。 机械开关连接时,一旦按下按键常常会出现几次断续的通、断现象。为了消除 这种现象需要去抖动,去抖动的方式

23、包括硬件去抖动和软件去抖动。本设计采用硬 件去抖动,在开关旁边加一个 104 电容。如图 3-4 所示: 图 3-4 开始按键电路 3.5 韦根通信电路 wiegand(韦根)协议是由摩托罗拉公司制定的一种通讯协议,它适用于涉及门 禁控制系统的读卡器和卡片的许多特性;其协议并没有定义通讯的波特率、也没有 定义数据长度,主要定义了数据传输方式。现在应用最多的是 26bit 和 34bit。 韦根数据输出由二根线组成,分别是 data0 和 data1,二根线分别将 0 或 1 输出。如果没有数据传输,data0 和 data1 两根线处于高电平,所以每根线上 各加一个上拉电阻。如图 3-5 所示

24、: 图 3-5 韦根通信电路 3.6 jtag 下载电路 jtag(joint test action group 联合测试行动小组)是一种国际标准测试协议 (ieee 1149.1 兼容),主要用于芯片内部测试。现在多数的高级器件都支持 jtag 协议,如 dsp、fpga 器件等。标准的 jtag 接口是 4 线: tms、tck、tdi、tdo,分别为模式选择、时钟、数据输入和数据输出线。现在, jtag 接口还常用于实现 isp(in-system programmable 在线编程),对 flash 等器 件进行编程。 jtag 编程方式是在线编程,传统生产流程中先对芯片进行预编程,

25、再烧写到 板上,现在简化的流程为先固定器件到电路板上,再用 jtag 编程,从而大大加快 工程进度。jtag 接口可对 psd 芯片内部的所有部件进行编程 。 ieee 1149.1 标准规定了一个四线串行接口(第五条线是可选的),该接口称 作测试访问端口(tap),用于访问复杂的集成电路(ic),例如微处理器、 dsp、asic 和 cpld。除了 tap 之外,混合 ic 也包含移位寄存器和状态机,以执 行边界扫描功能。在 tdi(测试数据输入)引线上输入到芯片中的数据存储在指令 寄存器中或一个数据寄存器中。串行数据从 tdo(测试数据输出)引线上离开芯片。 边界扫描逻辑由 tck(测试时

26、钟)上的信号计时,而且 tms(测试模式选择)信号 驱动 tap 控制器的状态。trst(测试重置)是可选项。根据相关数据手册中的说 明,trst、tdi、tms、tck 引脚上需要接一个 10k 的上拉电阻。 jlink 仿真器通过 jtag 接口下载程序,不需要改变启动方式,可以直接下载, 还可以在线调试,简单方便。电路如图 3-6 所示: 图 3-6 jtag 下载电路 3.7 电机控制电路 本设计采用 h 桥驱动电路驱动 130 直流电机。如图 3-7 所示,h 桥式电机驱动 电路包括 6 个三极管和一个 130 直流电机。要使电机运转,必须导通对角线上的一 对三极管。根据不同三极管对

27、的导通情况,电流可能会从左至右或从右至左流过电 机,从而控制电机的转向。 驱动电机时,保证 h 桥上两个同侧的三极管不会同时导通非常重要。如果三极 管 q3 和 q4 同时导通,那么电流就会从正极穿过两个三极管直接回到负极,此时电 路上的电流就可能达到最大值,甚至烧坏三极管。基于上述原因,在实际驱动电路 中通常要用硬件电路方便地控制三极管的开关,所以需要添加两个三极管 q1 和 q2。 当 a 为高电平 b 为低电平时,q1 导通 q2 截止,所以 q3 截止 q4 导通、q5 导 通 q6 截止,所以电流方向是从电源正极经三极管 q5 到电机,再经三极管 q4 到地。 相反,当 a 为低电平

28、 b 为高电平时,q1 截止 q2 导通,所以 q3 导通 q4 截止、q5 截止 q6 导通,所以电流方向是从电源正极经三极管 q3 到电机,再经三极管 q6 到 地。所以只需改变 a、b 电平高低就可以实现电机的正反转。 电机启动时电路中的电流会突然增大,会对其它模块产生干扰,所以在电源端 增加两个电容 c20 和 c21,使电流缓慢增加,减小对其它模块的干扰。 r35 1k r33 1k r32 1k a b r34 1k +3.3v q 1 n pn -8050 q 2n pn -8050 q 3 n pn -8050 q 4 pnp-8550 q 6 pnp-8550 d 1 414

29、8 d 3 4148 d 2 4148 d 4 4148 q 5 n pn -8050 c20 104 + c21 10uf/16v m 12 m 1 m ot or 图 3-7 电机控制电路 3.8 主电路设计 主电路的功能是完成对英格索兰的 sxg 系列 cpu 智能卡读卡器的检测,通过 led 指示灯和米字型 led 显示检测结果。 主电路上带有显示接口,用于指示工作状态。电源指示灯用于指示主电路接通 电源;工作状态指示灯 led1 用于指示低频卡的刷卡状态,led1 亮表示低频卡刷 卡成功,灭表示刷卡失败;工作状态指示灯 led2 用于指示高频卡的刷卡状态, led2 亮表示高频卡刷卡

30、成功,灭表示刷卡失败;工作状态指示灯 led3 用于指示 sxg 系列智能卡读卡器的防拆开关的状态,led3 亮表示读卡器被打开了,输出报 警,灭表示读卡器未被打开;工作状态指示灯 led4 用于指示高频卡或低频卡是否 存在,led4 亮表示高频卡或低频卡进行过刷卡,灭表示没有刷卡;米字型 led 用 于显示按键的数字,按键测试时,按 0 到 9 则显示 0 到 9,按“*”则显示“a” ,按 “#”则显示“b” 。 电路原理图如图附录 1 所示,4 个 led 指示灯接在 pe 口的 0 到 3 管脚上,米 字型 led 接到 pa 口的 8 到 12 管脚、pc 口的 6 到 9 管脚和

31、pd 口的 9 到 15 管脚。 因为要检测 sxg 系列 cpu 智能卡读卡器上的红色 led、绿色 led 和蜂鸣器是否正 常,所以 pb 端口的 12 到 14 管脚需要通过驱动电路接到外部端口上,检测时与其 相应的端口相连。sxg6701k 读卡器带有键盘,其它型号没有键盘,需要添加一个 型号检测选择开关,本电路中接到了 pe15 上,低电平时不进行键盘检测,高电平 时进行键盘检测。键盘检测时,将 pa 口的 1 到 7 管脚、pb0 管脚、pb1 管脚、pc4 管脚、pc5 管脚和 pe7 管脚通过驱动电路接到 sxg 系列 cpu 智能卡读卡器的相应 管脚上,一个管脚对应一个数字,

32、共有 12 个数字或字符,读卡器的相应管脚收到低 电平时,会通过韦根通信输出对应的二进制按键编码,主电路收到后会通过米字型 led 显示出对应的数字或字符。读卡器具有防拆保护,主电路通过控制直流电机使 一个面板遮挡读卡器上的防拆孔,工作状态指示灯 3 亮说明被拆开了,移开面板, 工作状态指示灯 3 灭,则无报警信号。 主电路最重要的是对 sxg 系列 cpu 智能卡读卡器的高频卡和低频卡的检测, 主电路上的韦根通信接口接到 sxg 系列 cpu 智能卡读卡器上,用户刷低频卡时, 读卡器读取数据通过韦根通信将 26 位数据发送到主电路中,主电路对 26 位韦根数 据进行校验,如果正确,工作状态指

33、示灯 led1 和 led4 亮 1 秒。用户刷高频卡时, 读卡器读取数据通过韦根通信将 34 位数据发送到主电路中,主电路对 34 位韦根数 据进行校验,如果正确,工作状态指示灯 led2 和 led4 亮 1 秒。刷低频卡和高频 卡没有先后顺序。 4 软件设计 软件的设计是设计控制系统的应用程序。其任务是在整体设计和硬件设计的基 础上,确定程序结构,分配内 ram 资源,划分功能模块,然后进行主程序和各模 块程序的设计,最后连接起来成为一个完整应用程序,与硬件相结合完成相应功能。 4.1 主程序设计 主程序采用模块化设计,流程图如图 4-1 所示。 从流程图可以看出,主程序的组成是通过分别

34、调用各子程序组成总体系统功能, 能很直观的看出主程序所要完成的功能,系统上电后首先是系统初始化,配置每个 寄存器和初始化结构体和变量,然后是系统自检,确保本测试电路能够正常工作, 之后设置开始按键为中断模式,为了节省能耗系统进入停止模式。当需要工作时, 按下开始键产生中断唤醒系统,系统进入正常工作模式,调用 led 和蜂鸣器测试子 程序测试 sxg 系列 cpu 智能卡读卡器上的绿色 led、红色 led 和蜂鸣器能否正常 工作,然后调用电机控制子程序检测读卡器上的防拆保护功能能否工作。如果在读 卡器上刷高频卡或低频卡则调用高频卡或低频卡校验子程序,校验从卡上读取的数 据是否正确。最后判断是否

35、进行按键测试,首先判断型号选择开关引脚的电平,若 为低电平则测试结束,若为高电平,则调用按键测试子程序,测试完进入停止模式, 等待下一次测试。 系统初始化 系统自检 开始键设为中断模式 系统进入停止模式 按下开始键,唤醒系统 调用测试绿色 led、红色 led 和蜂鸣器子程序 调用退出停止模式子程序 调用电机控制子程序 调用高频卡或低频卡校验子程序 型号选择开关是 高电平? 按键测试 y n 开始 图 4-1 主程序流程图 4.2 系统初始化 在使用一个 gpio 之前,一般需要对 gpio 引脚的时钟、引脚的模式以及速率 进行设定。stm32 的 io 口可以由软件配置成 8 种模式:模拟输

36、入、输入浮空、输 入下拉、输入上拉、开漏输出、推挽输出、复用功能开漏输出和复用功能推挽输出。 io 端口作为输出时,可以软件配置端口最大支持的时钟速率:10mhz、2mhz 和 50mhz。 系统初始化包括初始化 4 个 led 指示灯和米字型 led、初始化电机控制、初 始化防拆保护引脚、初始化型号选择开关、初始化韦根通信接口、初始化检验读卡 器上的 led 和蜂鸣器的引脚和初始化按键测试。初始化时都需要打开对应端口的时 钟,4 个 led 指示灯、米字型 led、按键测试、电机控制和检验读卡器上的 led 和蜂鸣器的引脚配置成输出模式,时钟速率设置为 50mhz;防拆保护、型号选择开 关的

37、引脚设为输入模式,不需要设置时钟速率;韦根通信接口的引脚设为中断模式, 输入上拉,下降沿触发。如图 4-2 所示: 初始化 4 个 led 和米字型 led 初始化防拆保护引脚 初始化韦根通信接口 初始化型号选择开关 初始化电机控制 开始 图 4-2 系统初始化流程图 4.3 系统自检 低电平点亮 led,高电平熄灭 led。首先 4 个 led 和米字型 led 对应的引脚 输出低电平,然后延迟 1 秒,最后输出高电平。如图 4-3 所示: 图 4-3 系统自检流程图 4.4 开始键设为中断模式 stm32 的所有 gpio 管脚都可以作为中断输入源,通过复用的方式使其对处理 器来说来自 g

38、pio 的一共有 16 个中断 px15:0。开始键接在 pe14 上,所以中断是 外中断线 14。如图 4-4 所示: 初始化按键测试的引脚 初始化绿色 led、红色 led 和蜂鸣器 返回 返回 4 个 led 和米字型 led 对应的引脚输出低电平 延迟 1 秒 4 个 led 和米字型 led 对应的引脚输出高电平 配置中断源、外中断线、中断触发方式 打开端口时钟,引脚设为输入浮空 开始 开始 图 4-4 开始键设为中断模式 4.5 进入停止模式 停止模式是在 cortex-m3 的深睡眠模式基础上结合了外设的时钟控制机制。进 入停止模式:首先设置 cortex-m3 系统控制寄存器中

39、的 sleepdeep 位,清除电源 控制寄存器(pwr_cr)中的 pdds 位,然后通过设置 pwr_cr 中 lpds 位选择电压 调节器模式,最后执行 wfi 指令。如图 4-5 所示: 图 4-5 进入停止模式流程图 4.6 配置系统时钟 任一个外部中断即可唤醒系统,唤醒后需要配置系统时钟。激活 hse(高速外 部时钟),待 hse 稳定后,激活 pll,把 pll 作为系统时钟源。如图 4-6 所示: 返回 设置中断通道、优先级 启动中断 返回 执行 wfi(等待中断)指令 设置 pwr_cr 寄存器的 lpds 位 设置系统控制寄存器的 sleepdeep 位 清除 pwr_cr

40、 寄存器的 pdds 位 开始 开始 图 4-6 配置系统时钟 4.7 电机控制 电机控制部分对应两个管脚 a 和 b,管脚 a 为高电平管脚 b 为低电平时,电机 正转;管脚 a 为低电平管脚 b 为高电平时,电机反转;管脚 a 和管脚 b 的电平相 同时,电机停止转动。如图 4-7 所示: 图 4-7 电机控制流程图 返回 激活 pll 选择 pll 作为系统时钟源 激活 hse(高速外部时钟) 返回 延迟 4 秒 管脚 a 和管脚 b 都设为低电平,电机停止 管脚 a 设为高电平,管脚 b 设为低电平,电机正转 延迟 4 秒 管脚 a 和管脚 b 都设为低电平,电机停止 管脚 a 设为低

41、电平,管脚 b 设为高电平,电机反转 延迟 1 秒 开始 4.8 韦根通信测试 这是设计的难点,sxg 系列 cpu 智能卡读卡器要读取低频卡和高频卡的数据, 而且无先后顺序,低频卡 26 位韦根数据,高频卡 34 位韦根数据。 韦根数据输出由二根线组成,分别是 data0 和 data1;二根线分别将0 或1输出。 输出0时:data0 线上出现负脉冲;输出1时:data1 线 上出现负脉冲;负脉冲宽度 tp=100 微秒;周期 tw=1600 微秒。韦根的接收对时间 的实时性要求比较高,如果用查询的方法接收会出现丢帧的现象:假设查询到 data0 为 0 时主程序正在指向其他任务,等主程序

42、执行完该任务时 data0 已经变 为 1 了,那么这样就导致了一个 0 位丢了,这样读出的卡号肯定奇偶校验通不过, 所以表现出 cpu 接收不到 id 模块发送的卡号了,唯一的办法是在外部中断里接收 每个位。 当有韦根数据传输时产生中断,在中断里接收韦根数据,接收完后需要对韦根 数据的位数进行判断。如果是 26 位数据,调用 26 位韦根数据校验程序进行校验, 若数据正确,面板上的指示灯 led1 和 led4 亮 1 秒;如果是 34 位数据,调用 34 位韦根数据校验程序进行校验,若数据正确,面板上的指示灯 led2 和 led4 亮 1 秒。如图 4-8 所示: n y n y n 中

43、断里读取韦根数据 数据是 26 位? 低频卡标志 low 置 1, 调用 26 位韦根数据校 验程序进行校验 数据正确? 高频卡标志 high 置 1,调用 34 位韦根数 据校验程序进行校验 数据正确? led2 和 led4 亮 1 秒 led4 亮 1 秒 led4 亮 1 秒 开始 y n y 图 4-8 韦根通信测试 4.9 按键测试 仅适用于型号 sxg6701k,首先判断型号选择开关的状态,若是高电平则进行 按键测试。主设备通过控制逻辑电路模拟按键,读卡器上一共有 12 个按键。按键接 收到低电平时,会通过韦根输出对应的 4 位二进制按键编码,韦根数据不需要校验, 同时 12 个

44、按键的引脚不能同时为低电平。如图 4-9 所示: y led1 和 led4 亮 1 秒 低频卡和高频卡标志都是 1 ? 返回 给下一个按键 引脚输出低电平 型号选择开关是高 电平? 读取按键的韦根数据 米字型 led 显示相应的 数字或字符 n 开始 n y 图 4-9 按键测试 5 系统调试 单片机系统经过总体设计,完成了硬件和软件设计开发。通过软件和硬件相结 合系统即可运行。但编制好的程序或焊接好的线路不能按预计的那样正常工作是常 见的事,经常会出现一些硬件、软件上的错误,这是软件和硬件开发者经常遇见的, 这就需要通过调试来发现错误并加以改正。调试可分为硬件调试和软件调试。本设 计系统利

45、用 jlink 仿真器进行了在线调试,并运行成功,最后进行实物图的硬件组 装与调试,这样就给开发者在提供了方便。 5.1 软件调试 本设计是利用 proteus 软件进行调试的,完全用仿真软件在 pc 机上对目标电路 原理图和程序进行检测和调试。调试过程中单片机相应输入端由通用键盘和鼠标设 定,运行状态、各寄存器状态、端口状态等都可以在指定的窗口区域显示出来,以 确定程序运行有无错误。 目标程序纠错:该阶段工作通常在目标程序编辑时就完成。一般来说,仿真软 件能为用户输入的程序指令纠错,包括书写格式、标号未定义或多重定义、转移地 址溢出等错误。 整体程序调试:即把各子程序整体连起来进入到综合电路

46、调试,看是否能实现 预计的功能显示。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场, 数据缓冲单元是否发生冲突,标志位的建立和清除在设计上是否失误,堆栈是否溢 出,输入输出状态是否正常等。 经过多次修改程序最后调试出来理想的效果,用软件模拟器调试不需任何在线 返回 12 个按键测试完? 仿真器,也不需要用户样机,直接就可以在 pc 机上开发和调试。调试和修改完毕 后可以直接使用编程器将软件固化在目标系统 rom 中,然后投入运行。 5.2 硬件调试 单片机应用系统的硬件调试和软件调试是分不开的,许多硬件故障在软件调试 时才能发现,但通常要先排除系统中明显的硬件故障。调试工作可以分为四

47、步: 线路检查:根据硬件逻辑设计图,仔细检查样机线路是否连接正确,并核对元 器件的型号、规格和安装是否符合要求,必要时可用万用表检测线路通断情况。 电源调试:样机的第一次通电测试很重要,若样机中存在电源故障,则加电后 将造成器件损坏。调试的方法有两种:一种是断开样机稳压电源的输出端,检查空 载时电源工作情况;另一种是拔下样机上的主要集成芯片,检查电源的负载能力 (用假负载) 。确保电源无故障并性能符合设计要求。 通电检查:在确保电源良好前提下,接通电源。最好在电源与其余电路之间串 接一个电流表。若接通后电流很大,必须立即切断电源。电源大得超出正常范围, 说明电路中有短路或故障。通电检查的主要目

48、的是看系统是否存在短路或由元器件 损坏、装配错误引起的电流异常。 检查芯片的逻辑关系是否出错:加电后检查各芯片插座上相关引脚的电位,仔 细测量相应的输入输出电平是否正常。单片机系统大都是数字逻辑电路,使用电平 检查法可首先查出逻辑设计是否正确,选用器件和连接关系是否符合要求等。 硬件检测完毕后,使用 jlink 仿真器连接 pc 和 jtag 接口,下载程序和进行 在线单步调试,使用 jlink 仿真器可以通过硬件直观地看到每段代码的执行结果。 本设计特点突出,性价比高,适合于工厂检测,有很高应用价值。 结束语 硬件系统关系到所要设计的电子产品好坏,如系统抗干扰性等,所以要合理地 安排尽量减少

49、干扰提高性能。单片机是很容易受干扰的控制器,当采用外部晶振时, 应尽量让其靠近单片机减少对其干扰,防止程序乱飞现象。同时还可以采用隔离等 方式减少干扰,硬件系统设计的好坏很大部分来源于经验,所以我们要有动手的好 习惯。 软件设计是核心部分,具有多样化、灵活性高、易移植等优点,要深深理会各 指令的含义才能更加熟练应用。低功耗处理是本设计的一大特色,当系统不工作时, 进入停止模式节省功耗,需要运行时唤醒系统,进入正常工作模式开始工作。软件 的设计大部分采用模块化设计的方法以方便调试,并使其可读性大大增强,方便更 改和移植。 在这次设计中我学到了很多知识,包括软件方面的和硬件方面的。 stm32f1

50、07vct6 这个芯片是我第一次使用,刚开始完全不知道怎么办,还好官方 提供了不少例程,学习了一段时间了解了大概。在硬件设计上,每个芯片的电源端 通常要加一个电容进行滤波,晶振的位置最好紧挨主芯片。画 pcb 时,要查清楚各 元器件的封装,电源线要尽可能的粗些,pcb 尽可能的紧凑和美观。 致 谢 参考文献 1肖硕,荆刚,李莉娜等.单片机数据通信典型应用大全m.北京:中国铁道出版社,2011 2胡汉才.单片机原理及其接口技术m.北京:清华大学出版社,2010 3喻金钱,喻斌.stm32f 系列 arm cortex-m3 核微控制器开发与应用m.北京:清华大学出版 社, 2011 4谢宜仁.单

51、片机实用技术问答m.北京:人民邮电出版社,2003 5房小翠,王金凤.单片机实用系统设计技术m.北京:国防工业出版社,1999 6何立民.单片机高级教程应用与设计m.北京:北京航空航天大学出版社,2000 7范书瑞.cortex-m3 嵌入式处理器原理与应用m.西安:电子工业出版社,2011 8姚文详.arm cortex-m3 权威指南m.北京:北京航空航天大学出版社,2009 9刘国荣.单片微型计算机技术m.北京:机械工业出版社,1996 10王迎旭.单片机原理与应用m.北京:机械工业出版社,2004 11刘军.例说 stm32m.北京:北京航空航天大学出版社,2011 12高峰.单片微型

52、计算机原理与接口技术m.北京:科学出版社,2003 13何宏.单片机原理与接口技术m.北京:国防工业出版社,2006 14杨西明,朱骐.单片机编程与应用入门m.北京:机械工业出版社,2004 15蒙博宇.stm32 自学笔记m.北京:北京航空航天大学出版社,2012 16廖义奎.cortex-m3 之 stm32 嵌入式系统设计m.北京:中国电力出版社,2012 17李宁.arm mcu 开发工具 mdk 使用入门m.北京:北京航空航天大学出版社,2012 18杨刚.32 位嵌入式系统与 soc 设计导论m.西安:电子工业出版社,2011 19陈志旺.stm32 嵌入式微控制器快速上手m.西安

53、:电子工业出版社,2012 20joseph yiu.the definitive guide to the arm cortex-m3m.california:information storage devices,2008 附 录 附录 1 硬件电路图 l ed 2 l ed 3 l ed 4 +3.3v r20 470 r21 470 r22 470 l ed 1 r19 470 +3.3v c4 100nf c7 100nf +c5 10uf +c6 10uf +12v+3.3v r17 10k +3.3v c1 104 +3.3v r1 r6 r3 r4 r2 r5 r14 r13

54、r11 r12 r9 r8 r10 r7 r16 r15 220 start 6701 1 2 j2 con 2 1 2 j1 pow er in s3 sw spd t data0 data1 1 2 cn1 pcba power +12v g nd l ed 5 l ed 电源模块 r23 2k v in 3 gnd 1 v out 2 u 2 l m1117 d 5 4004 +12v 13 42 s1 sw_push l 1 l 2 l 3 l 4 l 5 l 6 l 7 l 8 l 9 l 10 l 11 l 12 l 13 l 14 l 15 l 16 l ed 1 l ed 2

55、l ed 3 l ed 4 a 1 1 j 2 h 3 f 4 g 1 5 m 6 n 7 e 8 k 17 d 1 9 d 2 10 com 11 d p 12 c 13 l 14 g 2 15 b 16 a 1a 2 b c d 2d 1 e f hj k g 2 l mn g 1 d p a 2 18 u 1 d py _16 r70 10k r71 10k +3.3v r80 10k 韦根通信 型号选择 开始按键 v cc 1 /t rst 3 t di 5 t ms 7 t ck 9 rtck 11 t do 13 /srst 15 d bg ro 17 d bg ack 19 v

56、cc 2 g nd 4 g nd 6 g nd 8 g nd 10 g nd 12 g nd 14 g nd 16 g nd 18 g nd 20 jta g 1 r26 10k r27 10k r28 10k r29 10k r30 10k r31 10k +3.3v +3.3v t rst t di t ms/sw d io t ck /sw clk t do /sw o rese t 220 jtag下载 米字型led 工作状态指示灯 r35 1k r33 1k r32 1k a b r34 1k +3.3v q 1 n pn -8050 q 2n pn -8050 q 3 n pn -

57、8050 q 4 pnp-8550 q 6 pnp-8550 d 1 4148 d 3 4148 d 2 4148 d 4 4148 q 5 n pn -8050 c20 104 + c21 10uf/16v c8 100nf pa0 23 pa1 24 pa2 25 pa3 26 pa4 29 pa5 30 pa6 31 pa7 32 pa8 67 pa9 68 pa10 69 pa11 70 pa12 71 pa13 72 pa14 76 pa15 77 pb0 35 pb1 36 pb2 37 pb3 89 pb4 90 pb5 91 pb6 92 pb7 93 pb8 95 pb9 9

58、6 pb10 47 pb11 48 pb12 51 pb13 52 pb14 53 pb15 54 pc0 15 pc1 16 pc2 17 pc3 18 pc4 33 pc5 34 pc6 63 pc7 64 pc8 65 pc9 66 pc10 78 pc11 79 pc12 80 pc13 7 pc14 8 pc15 9 v dd _2 75 v dd _3 100 v dd _4 28 v dd _5 11 v dd a 22 v re f+ 21 v dd _1 50 pd15 62 pd14 61 pd13 60 pd12 59 pd11 58 pd10 57 pd9 56 pd8

59、 55 pd7 88 pd6 87 pd5 86 pd4 85 pd3 84 pd2 83 pd1 82 pd0 81 pe15 46 pe14 45 pe13 44 pe12 43 pe11 42 pe10 41 pe9 40 pe8 39 pe7 38 pe6 5 pe5 4 pe4 3 pe3 2 pe2 1 pe1 98 pe0 97 v ss_2 74 v ss_3 99 v ss_4 27 v ss_5 10 v ssa 19 v re f- 20 v ss_1 49 n c 73 o sc_in 12 o sc_ou t 13 boo t 0 94 n rst 14 v ba t

60、 6 u 3 stm 32f107v c +3.3v c3 20pf c2 20pf y 1 25m h z r25 1m +3.3v r24 10k c14 104 start 6701 data0 data1 a b gled1 rled1 beep1 key1 key2 key3 key4 key5 key6 key7 key8 key9 key10 key11 key12 13 42 s2 sw_push l 1 l 2 l 3 l 4 c11 100nf c12 100nfc13 100nf +3.3v +3.3v +3.3v +3.3v c15 100nf l ed 1 l ed

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论