基于STM32的嵌入式银行排队系统智能叫号终端设计.pdf
《基于STM32的嵌入式银行排队系统智能叫号终端设计.pdf》由会员分享,可在线阅读,更多相关《基于STM32的嵌入式银行排队系统智能叫号终端设计.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 应用技术 2011 年第 5 期自动化与信息工程 31 基于 STM32 的嵌入式银行排队系统智能叫号终端设计 郑海成 谢云(广东工业大学自动化学院)摘要:本文设计了一种以 ARM 为核心的嵌入式银行排队系统叫号终端,采用嵌入式操作系统 uC/OS-II 实现银行叫号业务的任务调度和外围设备管理,并通过 ZIGBEE 模块与主控系统进行实时数据交互。经过大量的实际业务数据验证,该智能叫号终端具有高实时性,高稳定性的特点,适用于多窗口、大客户量的金融交易场所。关键词:STM32;叫号;uC/OS-II;ZIGBEE 1 引言 随着我国社会经济的持续快速发展,长时间的站立排队已成为金融机构、电信
2、、医院、政府办事大厅等场所的常见现象,以通信技术与计算机技术为基础的智能排队管理系统应运而生。而传统的排队系统中采用有线叫号终端,并且只有基本的呼叫票号功能,无法应对日益提升的客户功能需求。同时,由于传统叫号器采用都是较为落后的 8 位单片机处理器,无法应付大客户量、大通信量及复杂的任务调度的需求1。因此,本文设计了一种基于嵌入式技术智能排队叫号终端,由 32 位处理器代替传统的 8 位处理器,并通过 ZIGBEE 通信模块实现无线叫号功能。相对传统叫号器增加票号转移、客户评价、VIP 客户特呼等功能,较好的解决了排队系统中存在的几个实际问题。并通过嵌入式操作系统 uC/OS-II 进行银行任
3、务调度,更好地进行复杂业务的管理。2 系统硬件结构设计 2.1 叫号终端与主控系统关系 每个叫号终端作为一个终端节点,通过 ZIGBEE模块设置其节点地址,每个叫号终端有自己特定的物理 ID 地址(UID、PID、GID、TID)。在主控系统中应用的通信模块选用中心节点模式,有自己唯一的中心节点地址。各个叫号终端通过主从模式与主控系统进行叫号业务通信2,主控系统通过接收的数据体区分每个叫号终端的物理 ID,从而区分不同窗口发过来的请求信息,叫号终端与主控系统关系图如图 1所示。图 1 叫号终端与主控系统关系图 2.2 叫号终端的硬件结构 叫号终端与外围设备连接框图如图 2 所示。智能叫号终端主
4、要包括处理器主控模块、键盘扫描模块、EEPROM 存储模块、ZIGBEE 通信模块和液晶显示模块等。图 2 叫号终端与外围设备连接框图 处理器通过 UART0 接口与 ZIGBEE 模块连接,32 与外界进行数据交互,并通过 UART1 接口与评价器连接,实现每次叫号服务后的评价服务。此外,本设计通过 EEPROM 的掉电存储功能,给每个叫号终端标识一个唯一的物理 ID,每次上电前进行 ID 验证,此 ID 地址也在后续的通信格式上作为终端节点的区分地址,从而使主控系统能很好地识别不同窗口的叫号终端发过来的票号申请信息,从而更好地进行票号管理和调度。2.3 主处理器与外围设备通信电路设计 如图
5、 3 所示,本文的主处理器选用 ST 公司的STM32F103VBH6 芯片,该芯片基于 ARM Cortex-M3 32 位的 RISC 内核,工作频率最高可达 72MHz3。ZIGBEE 通信模块选用顺舟科技的 SZ05 模块,处理器与通信模块通过 USART1_TX 和 USART1_RX 引脚连接,在叫号终端中应用的通信模块选用终端节点工作模式(即把通信模块上的 DS 引脚接地)。图 3 主处理器与外围设备通信电路设计 3 系统软件结构设计 系统软件结构设计主要包括 3 部分:叫号终端任务状态优先级设计、叫号业务状态流程设计和叫号终端通信业务数据格式设计。3.1 叫号终端任务状态优先级
6、设计 本设计中,基于 uC/OS-II 嵌入式操作系统的系统任务优先级划分如表1 所示4。表 1 叫号终端系统任务优先级划分 任务名 任务优先级 主要功能 Task_Init 5 系统初始化 Task_Login 6 用户登录 Task_Uart1 7 与主控系统通信,进行业务办理命令交互 Task_Uart0 8 与评价器通信,完成评价业务 Task_Timer_QueNum9 更新排队人数 Task_Timer_Timout10 连接超时退出 Task_Keyscan 11 按键检测与具体业务办理 Task_LCD_Dis 12 LCD 液晶显示排队人数和工作状态Task_LED 13 驱
7、动4个LED显示当前工作状态 Task_Stat 14 统计业务信息 Task_Idle 15 空闲任务 由于在 uC/OS-II 中最多可以支持 64 个任务,分别对应优先级 063,其中 0 为最高优先级,63 为最低级。系统保留了 4 个最高优先级的任务和 4 个最低优先级的任务,所有用户可以使用的任务数有 56 个,所以最高优先级任务从 5 开始。本设计中,除了 Task_Init 和 Task_Idle 任务为系统自带,其他 9 个任务均由用户创建。Task_Init 是系统的第一个任务,对系统时钟和底层设备进行初始化,创建所有事件和其他各项用户任务,并对系统进行监测;Task_Lo
8、gin 任务主要完成银行柜台员工的身份登录和发送信息验证,当用户登录后,此任务将一直被挂起,直到有用户退出登录为止;Task_Uart1 任务是叫号终端与主控系统进行业务通信,包括叫号、弃号、转移、VIP 特呼等业务状态的申请;Task_Uart0相对Task_Uart1 优先级略低,是因为此任务是有条件性的,在每次完成办理之后,才调用此任务把通信对象切换成叫号终端与评价器,客户通过评价器进行评价,完成最终业务办理。评价完毕后,此任务将一直被 挂 起 直 到 下 一 次 业 务 的 办 理 结 束;Task_Timer_QueNum 任务主要是通过定时器,每隔十秒定时中断向主控系统发出申请更新
9、排队人数;Task_Timer_Timout 任务是在每次由叫号终端向主控系统发送命令申请时,若超过三秒未收到应答,则自郑海成 谢云:基于 STM32 的嵌入式银行排队系统智能叫号终端设计 2011 年第 5 期自动化与信息工程 33 动跳转到上一个系统状态;Task_Keyscan 任务是整个叫号终端的核心,主要是进行键盘扫描和具体业务流程办理,此任务的具体功能实现将在下一节的业务状态流程进行详细分析;Task_LCD_Dis 任务主要负责驱动 LCD16032 进行排队人数和工作状态的实时更新;Task_LED 任务主要是负责驱动 4 个 LED(分别代表连接或未连接、已连上、通信中、通信
10、完毕)进行当前工作状态的显示;Task_Stat 主要负责业务信息的通信,包括客户的评价结果信息等。3.2 叫号业务状态流程设计 本设计中,叫号终端的业务状态流程如图4所示。整个叫号业务共设定了 14 个全局系统状态变量,此14 个系统状态与上述的9 个用户任务嵌套运用。而主要的系统状态跳变都在 Task_Keyscan 任务中进行。以下是具体系统状态在各任务中的划分:在 Task_Init 任务下,主要包括 SYS_POWER_ ON、SYS_WAITING_MODIFY_SIGN、SYS_LID_ MODIFYING、SYS_LID_MODIFY_ END 四个系统状态,主要完成系统时钟、
11、串口、定时器等初始化。并在此任务中等待三秒,若有任何按键按下,则跳入到修改硬件号中,此设计是为了直接修改不同叫号终端的物理 ID,即通过对 EEPROM 存储器的读写,进行物理 ID 的更新。在 Task_Login 任 务 下,主 要 包 括 SYS_ CONNECTED_WAIT_LOGIN_UID、SYS_ CONNECTED_WAIT_LOGIN_PSW和SYS_ CONNECTED_LOGOUT_QUERY 三个系统状态,主要负责员工的身份登录和退出操作。在 Task_Keyscan 任务中,主要包括 SYS_ CONNECTED_LOGINED_C_UNPROCESS、SYS_ C
12、ONNECTED_LOGINED_P、SYS_CONNECTED_ LOGINED_MOVESERV、SYS_CONNECTED_ LOGINED_C_PROCESSING、SYS_CONNECTED_ LOGINE-D_SPCALL 五个系统状态。主要包括叫号流程中的顺呼、重呼、VIP 特呼、转移等功能的具体实现。图 4 叫号业务状态流程图 3.3 叫号终端通信业务数据格式设计 叫号终端与主控系统的通信数据格式如图 5 所示,其中 UID 为无线网络中的入网设备唯一识别号;PID 为端口号;GID 为组编号,指明硬件所属组;TID为硬件类型号,这 4 个 ID 已被固化到每个叫号终端的 EE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STM32 嵌入式 银行 排队 系统 智能 叫号 终端 设计
限制150内