基于Cortex-M3的嵌入式以太网门禁系统设计
来源:华强电子网 作者:------ 时间:2014-07-16 11:13
2 系统软件设计
2.1 以太网协议LwIP
LwIP是瑞士计算机科学院开发的小型开源的TCP/IP协议栈。由于它只需要十几K的RAM和40K左右的ROM就可以运行,所以很适合在硬件资源并不充裕的嵌入式系统中使用。
LwIP属于比较松散的通信机制,通过共享内存的方式实现应用层与底层协议之间的通信。它提供了三种API:①RAM API,②LwIP API,③BSD API。
其中的RAM API其缺点就是代码不易于理解,开发难度大,其优点是相对于其他两种方式占用的资源少,效率更加高,更适合于对于资源相对少的嵌入式使用,所以我们采用RAM API方式进行编写。
在TCP/IP传输层中有TCP和UDP两种协议,TCP提供IP环境下数据的可靠传输,UDP提供的是不可靠传输,由于门禁系统中必须要求传输数据的正确,所以采用TCP。图5是LwIP下的TCP处理流程框图。
RAM API把协议栈和应用程序放在一个进程里,该函数基于函数回调技术,下面是LwIP的部分关键配置和代码。
(1)LwIP配置
在LwIP的配置文件lwipopts.h中修改如下地方。
是否使用操作系统,我们不用,所以填写为1:
#define NO_SYS 1
配置heap的大小:
#define MEM_SIZE
配置pool的大小
#define PBUF_POOL_SIZE
#define PBUF_POOL_BUFSIZE
以上三个配置占据了LwIP协议栈大部分的内存,需要根据自己的需要修改成合适的值。
(2)LwIP代码
①分别设置IP地址,子网掩码和网关:
IP4_ADDR(&ipaddr,192,168,2,28);
IP4_ADDR(&netmask,255,255,255,0);
IP4_ADDR(&gw,192,168,2,254);
②初始化底层函数,也就是配置MAC地址,初始化ENC28J60,配置最大输出单元等:
low_level_init(netif);
③连接远程主机,当连接建立,就会调用第4个参数Conn_Back:
tcp_connect(TCP_pcb,&ipaddr,1026,Conn_back);
④当有新的数据接收到时调用的回调函数:
tcp_recv(TCP_pcb。tcp_recv_callback);
⑤服务器成功接收到数据后调用的回调函数:
tcp_sent(TCP_pcb,tcp_sent_callback);
⑥处理错误的回调函数:
tcp_err(pcb,CMD_conn_err);
⑦是否接收到数据:
ethernetif_input(&enc28j60);
通信一旦结束或者出现异常状况后,一定要使用pbuf_free()函数释放pbuf,避免内存的浪费。还有一点要注意的是,系统在正常运行的过程中,定时器函数tcp_fasttmr()和tcp_slowtmr()函数必须以固定的时间间隔被规律地调用。
2.2 门禁系统软件架构与设计
门禁系统的主要流程如图6所示,每次重新启动后,首先初始化相关寄存器,初始化各个模块,确定已经连接服务器,然后进入程序主循环。
首先监测是否需要调用LwIP内部的快速定时器和慢速定时器。然后监测服务器是否有断开,如果断开则重新连接服务器,没有断开的话则检测是否有智能卡,有的话接收卡中信息进行处理然后发送给服务器。
图6 门禁系统的主要流程图
结语
本文对使用STM32为主控芯片的门禁系统的硬件和软件架构进行了相应的描述,对于文中所涉及的芯片和以太网协议的使用具有指导意义,能够较大幅度地降低成本,同时门禁系统的使用会更加稳定,传输距离更长。
关注电子行业精彩资讯,关注华强资讯官方微信,精华内容抢鲜读,还有机会获赠全年杂志。
关注方法:添加好友→搜索“华强微电子”→关注
或微信“扫一扫”二维码
下一篇:无线传感器网络底层平台的深层研究
- •立即领票 | 芯片+封测+嵌入式系统大展9.15-17深圳福田见!国产化元器件一站式选型2022-08-23
- •Cadence速度高达800Gbps的以太网子系统解决方案,助力实现硅验证2022-04-13
- •深圳国际电子展暨嵌入式系统展在深圳举行2021-09-27
- •ADI推出长距离工业以太网产品,助力过程、工厂和楼宇自动化连接2021-06-18
- •莱迪思将其FPGA拓展至智能和嵌入式视觉系统2020-09-11
- •ADI公司推出用于新型ADI Chronous系列工业以太网解决方案2019-11-13
- •Arm年会开跑,推全新嵌入式CPU定制化指令2019-10-10
- •通过实时网络实现多轴运动控制的同步2019-07-02
- •低功耗以太网PHY对于楼宇自动化的深远影响2019-04-04
- •如何正确认识以太网总线2019-01-23