本文提出了利用SoC 芯片Garfield,设计基于uClinux 操作系统和TCP/IP 网络的银行自助设备——网络安全终端。从网络安全终端的功能定义与系统方案、网络安全终端的硬件实现原理图与样机制作、uClinux 操作系统在Garfield 芯片上的移植、网络安全终端各接口驱动以及TCP/IP 驱动的编制、终端安全性的实现和终端与相应银行交易系统B/S 架构下应用程序的开发等方面论述了系统实现的过程。
引言
随着国内银行业务量的迅速发展,银行需要能有效解决银行网点前台业务量大,耗时长等问题,并为持卡人提供安全迅捷服务的一种自助型终端产品。网络安全终端系统就是针对这一需求,在银行现有网络的基础上开发的低成本嵌入式产品。本系统的研制对于以银行为代表的各金融企业的终端服务以及方便人们的生活具有重要的意义。
1. 网络安全系统的总体设计
网络安全终端要实现用户的交易操作,必须将用户的交易信息传递给银行后台。基于银行现有的网络,网络安全终端必需具备网络通信功能才能与银行后台交互数据。网络安全终端是用于银行交易的,一旦网络安全终端传递给银行后台的数据被窃取或篡改,都将导致用户和银行的巨大损失。因此,网络安全终端必须确保其传递数据的安全性。
1.1 网络安全终端交易系统的体系框架
基于局域网的网络安全终端交易系统,主要由接入服务器系统、密钥生成与管理系统、终端发卡系统、终端管理系统等部分组成,如图1 所示。
图 1 网络安全系统结构图
1.2 网络安全终端的模块需求设计
根据功能需求及技术需求,网络安全终端须具备以下模块:核心处理模块:基于ARM7TDMI 核的SoC 芯片Garfield 作为主处理器,附加SDRAM,FlasliROM 等外围威廉希尔官方网站
并在Garfield 上移植uCLinux 操作系统。该模块负责协调整个系统工作,进行各个模块的管理、数据处理/存储、任务调度及决策等。
网卡模块:接入以太网,与接入前置机交互数据,实现基于 TCP/IP 协议的数据通信。人机交互模块:人机交互模块是实现用户与终端之间的通讯和对话,通过液晶显示屏和键盘等设备,提供丰富友好的操作界面及人工介入功能等人性化的设计,为用户操作提供可靠的支持。
安全处理模块:采用 PSAM 卡硬件加密,实现网络安全终端对重要信息的加密,来满*易系统对网络安全终端安全性的需求。
2. 网络安全系统的硬件设计
硬件平台主要分成两部分:主系统和安全处理子系统。主系统和安全处理子系统之间通过串口来实现数据交换。主系统主要包括主处理器、电源模块、存储模块、人机交互模块、网卡模块等,其原理图如图2 所示。
图 2 网络安全终端的硬件平台
2.1 主处理器存储接口威廉希尔官方网站
由于 16 位数据访问方式即可满足网络安全终端对存储速度的要求,与32 位数据访问方式相比,可大大减小硬件布局布线的难度,从而提高产品的性价比,因此网络安全终端选用16 位访问方式。由于处理器的数据宽度配置为16 位访问外部启动存储器,故下面的存储设备均选择16 位数据线连接。存储模块主要包含8M 字节的FLASH 和16M 字节的SDRAM。
图 3 存储模块接口
2.2 网络模块接口威廉希尔官方网站
网络安全终端采用 RTL8019AS 实现网络模块的物理层。它们之间的通信主要是通过总线和一些控制信号来完成的。由于网卡模块使用的是Garfield 的总线(数据和地址总线),所以将网卡模块的低10 根地址线及低16 根数据线与之相应连接。同时由于网卡模块需要有一些控制引脚来实现对网卡模块的控制(如启动、复位、中断、读、写等),因此可以使用主处理器的引脚来和这些引脚连接。Garfield 的很多引脚可以复用为特殊的控制信号和GPIO 口。
所有的GPIO 口都可以通过独立编程来控制它的输入输出方向和输出电平的高低,而且可以将GPIO 引脚设置为中断功能,可以灵活地监测各种类型信号的变化,来实现对网卡模块的监控,其威廉希尔官方网站
图如4 所示。
图 4 网卡模块接口
2.3 安全处理子系统威廉希尔官方网站
安全处理子系统主要包含:协处理器 C52,磁卡读卡器和PSAM 卡。安全处理子系统的工作如下:协处理器C52 读取磁卡信息,将信息传递给PSAM 卡进行加密,并将PSAM卡加密后的信息传递给主系统,安全处理子系统与网络安全终端的集成接口如下图5 所示。
图 5 安全处理子系统接口
3. 网络安全终端的软件设计
在对嵌入式产品的体系模型研究的基础上,进行基于Garfield 的网络安全终端的软件框架设计。软件实现部分包括:uClinux 在Garfield 处理器上的移植、uClinux 的网卡驱动移植、安全网络通信的设计,以及交易流程的实现。
3.1 uClinux 在Garfield 处理器上的移植
首先是内核配置系统,配置信息保存在配置文件.config 中,原有的.config 文件被更名为.config.old。Makefile 根据.config 中的配置信息,构造并编译源文件列表,通过链接器脚本,把目标代码链接到一起,最终形成Linux Kernel Image 。然后设置内核启动入口,入口代码是linux/arch/armnommu/kernel/head-army.S。对于中断处理,uClinux Kernel 的C 代码入口函数start_kernel()定义在linux/init/main.c 中。该函数首先调用setup_arch()处理内核启动参数等内容,然后对中断进行处理。
最后进行系统时钟设计,Garfield 中的定时器是片内集成的定时器,能够向系统提供定时中断。网络安全终端使用Garfield 的Timed 的重启计数模式,将其作为系统时钟源。
3.2 网络设备驱动的实现
网络设备驱动程序主要由初始化部分和数据包的发送与接收部分组成,相关程序代码在linux-2.4.x/drivers/net/ne.c 和linux-2.4.x/drivers/net/8390.c 中,其实现的关键代码如下:
主要的初始化函数 int init ne}robe(struct net device *dev)
检测网卡的复位响应代码如下:
bad card=((dev-》basa_ addr != 0)&&(de-》mem end==0xbad));
{ unsigned long reset start time = jiffies;
Outb(inb(ioaddr+NE_RESET), ioaddr+NE_RESET);
while ((inb_p(ioaddr+ENO_ISR)& RNISR_RESET)==0)
if(jiffies-reset_start_time》2*HZ/100){
if (bad card){ printk(“ (warning: no reset ack)”);
break; }else{
printk(“ not found (no reset ack)/n”);
ret= - ENODEV;
goto err_out; } }
outb}(oxff, ioaddr+ENO_ ISR); }
3.3 安全性通信的实现
网络安全终端的主系统通过将重要信息发送给安全处理子系统,由安全处理子系统将信息加密。主系统接收该密文并发送,信息以密文的形式在网络中传递,这样可以满足终端安全的需求。网络安全终端是通过主处理器的uart2 与安全处理子系统的协处理器C52 进行串口通信的。
串口通信编程的实现过程如下:
(1) 串口操作涉及的头文件,linux/include/asm/arch-GFD/serial.h。
(2) 打开串口,Linux 下串口的设备文件是/dev/ttySO, /dev/ttySl 等。
(3) 设置串口,最基本的设置串口包括波特率设置,校验位和停止位设置。串口的设置主要是设置struct ermios 结构体的各成员值。
(4) 写数据到端口,数据到端口只需要使用write 系统调用去传送数据。
(5) 从端口读数据,以行数据模式操作端口,每个read 系统调用都会返回,不论多少字符实际存在于串行输入缓冲中。如果没有字符存在,调用将阻塞(等待)到有字符进入,或出现超时和错误。
3.4 用户主程序
图 6 主程序流程图
主程序主要为本系统提供应用操作,包含在自定义的user/ethterminal 文件夹中。系统初始化定义在SysInit()中,对自定义的参数进行初始化,如消息等。由于这里的人机交互模块是自定义的LCD 显示,没有用minigui 等来实现,而采用自定义图形显示函数来实现的键盘采用轮询方式检测,故有一部分设备初始化工作在这里完成。
系统自检:定义在 SystemCheck()中。对安全处理子系统、网络模块、存储模块等进行检测,并在显示器给出相应提示信息。
与监控服务器连接:定义在 SendDevStaToRemCtrl()中。主要用于通过网络来实现本系统的软件管理以及后继版本升级等。
在完成与监控服务器的连接后,网络安全终端 LCD 屏上会显示“XX 银行”的操作界面,开始等待用户的操作;若操作超时,将进入液晶屏保护程序,否则进入主菜单循环。
4 结束语
本文在银行交易系统对银行自助终端需求分析的基础上,提出了利用东南大学国家专用集成威廉希尔官方网站
系统工程技术研究中心自主研发的ARM7TDMI内核的嵌入式SoC芯片Garfield,设计出基于ucLinux 操作系统和TCP/IP 网络的银行自助设备——网络安全终端,通过原理图设计、操作系统移植、接口和应用程序的开发,本系统样机通过了银行模拟交易系统的测试,该终端系统达到了设计的要求。
本文提出了利用SoC 芯片Garfield,设计基于uClinux 操作系统和TCP/IP 网络的银行自助设备——网络安全终端。从网络安全终端的功能定义与系统方案、网络安全终端的硬件实现原理图与样机制作、uClinux 操作系统在Garfield 芯片上的移植、网络安全终端各接口驱动以及TCP/IP 驱动的编制、终端安全性的实现和终端与相应银行交易系统B/S 架构下应用程序的开发等方面论述了系统实现的过程。
引言
随着国内银行业务量的迅速发展,银行需要能有效解决银行网点前台业务量大,耗时长等问题,并为持卡人提供安全迅捷服务的一种自助型终端产品。网络安全终端系统就是针对这一需求,在银行现有网络的基础上开发的低成本嵌入式产品。本系统的研制对于以银行为代表的各金融企业的终端服务以及方便人们的生活具有重要的意义。
1. 网络安全系统的总体设计
网络安全终端要实现用户的交易操作,必须将用户的交易信息传递给银行后台。基于银行现有的网络,网络安全终端必需具备网络通信功能才能与银行后台交互数据。网络安全终端是用于银行交易的,一旦网络安全终端传递给银行后台的数据被窃取或篡改,都将导致用户和银行的巨大损失。因此,网络安全终端必须确保其传递数据的安全性。
1.1 网络安全终端交易系统的体系框架
基于局域网的网络安全终端交易系统,主要由接入服务器系统、密钥生成与管理系统、终端发卡系统、终端管理系统等部分组成,如图1 所示。
图 1 网络安全系统结构图
1.2 网络安全终端的模块需求设计
根据功能需求及技术需求,网络安全终端须具备以下模块:核心处理模块:基于ARM7TDMI 核的SoC 芯片Garfield 作为主处理器,附加SDRAM,FlasliROM 等外围威廉希尔官方网站
并在Garfield 上移植uCLinux 操作系统。该模块负责协调整个系统工作,进行各个模块的管理、数据处理/存储、任务调度及决策等。
网卡模块:接入以太网,与接入前置机交互数据,实现基于 TCP/IP 协议的数据通信。人机交互模块:人机交互模块是实现用户与终端之间的通讯和对话,通过液晶显示屏和键盘等设备,提供丰富友好的操作界面及人工介入功能等人性化的设计,为用户操作提供可靠的支持。
安全处理模块:采用 PSAM 卡硬件加密,实现网络安全终端对重要信息的加密,来满*易系统对网络安全终端安全性的需求。
2. 网络安全系统的硬件设计
硬件平台主要分成两部分:主系统和安全处理子系统。主系统和安全处理子系统之间通过串口来实现数据交换。主系统主要包括主处理器、电源模块、存储模块、人机交互模块、网卡模块等,其原理图如图2 所示。
图 2 网络安全终端的硬件平台
2.1 主处理器存储接口威廉希尔官方网站
由于 16 位数据访问方式即可满足网络安全终端对存储速度的要求,与32 位数据访问方式相比,可大大减小硬件布局布线的难度,从而提高产品的性价比,因此网络安全终端选用16 位访问方式。由于处理器的数据宽度配置为16 位访问外部启动存储器,故下面的存储设备均选择16 位数据线连接。存储模块主要包含8M 字节的FLASH 和16M 字节的SDRAM。
图 3 存储模块接口
2.2 网络模块接口威廉希尔官方网站
网络安全终端采用 RTL8019AS 实现网络模块的物理层。它们之间的通信主要是通过总线和一些控制信号来完成的。由于网卡模块使用的是Garfield 的总线(数据和地址总线),所以将网卡模块的低10 根地址线及低16 根数据线与之相应连接。同时由于网卡模块需要有一些控制引脚来实现对网卡模块的控制(如启动、复位、中断、读、写等),因此可以使用主处理器的引脚来和这些引脚连接。Garfield 的很多引脚可以复用为特殊的控制信号和GPIO 口。
所有的GPIO 口都可以通过独立编程来控制它的输入输出方向和输出电平的高低,而且可以将GPIO 引脚设置为中断功能,可以灵活地监测各种类型信号的变化,来实现对网卡模块的监控,其威廉希尔官方网站
图如4 所示。
图 4 网卡模块接口
2.3 安全处理子系统威廉希尔官方网站
安全处理子系统主要包含:协处理器 C52,磁卡读卡器和PSAM 卡。安全处理子系统的工作如下:协处理器C52 读取磁卡信息,将信息传递给PSAM 卡进行加密,并将PSAM卡加密后的信息传递给主系统,安全处理子系统与网络安全终端的集成接口如下图5 所示。
图 5 安全处理子系统接口
3. 网络安全终端的软件设计
在对嵌入式产品的体系模型研究的基础上,进行基于Garfield 的网络安全终端的软件框架设计。软件实现部分包括:uClinux 在Garfield 处理器上的移植、uClinux 的网卡驱动移植、安全网络通信的设计,以及交易流程的实现。
3.1 uClinux 在Garfield 处理器上的移植
首先是内核配置系统,配置信息保存在配置文件.config 中,原有的.config 文件被更名为.config.old。Makefile 根据.config 中的配置信息,构造并编译源文件列表,通过链接器脚本,把目标代码链接到一起,最终形成Linux Kernel Image 。然后设置内核启动入口,入口代码是linux/arch/armnommu/kernel/head-army.S。对于中断处理,uClinux Kernel 的C 代码入口函数start_kernel()定义在linux/init/main.c 中。该函数首先调用setup_arch()处理内核启动参数等内容,然后对中断进行处理。
最后进行系统时钟设计,Garfield 中的定时器是片内集成的定时器,能够向系统提供定时中断。网络安全终端使用Garfield 的Timed 的重启计数模式,将其作为系统时钟源。
3.2 网络设备驱动的实现
网络设备驱动程序主要由初始化部分和数据包的发送与接收部分组成,相关程序代码在linux-2.4.x/drivers/net/ne.c 和linux-2.4.x/drivers/net/8390.c 中,其实现的关键代码如下:
主要的初始化函数 int init ne}robe(struct net device *dev)
检测网卡的复位响应代码如下:
bad card=((dev-》basa_ addr != 0)&&(de-》mem end==0xbad));
{ unsigned long reset start time = jiffies;
Outb(inb(ioaddr+NE_RESET), ioaddr+NE_RESET);
while ((inb_p(ioaddr+ENO_ISR)& RNISR_RESET)==0)
if(jiffies-reset_start_time》2*HZ/100){
if (bad card){ printk(“ (warning: no reset ack)”);
break; }else{
printk(“ not found (no reset ack)/n”);
ret= - ENODEV;
goto err_out; } }
outb}(oxff, ioaddr+ENO_ ISR); }
3.3 安全性通信的实现
网络安全终端的主系统通过将重要信息发送给安全处理子系统,由安全处理子系统将信息加密。主系统接收该密文并发送,信息以密文的形式在网络中传递,这样可以满足终端安全的需求。网络安全终端是通过主处理器的uart2 与安全处理子系统的协处理器C52 进行串口通信的。
串口通信编程的实现过程如下:
(1) 串口操作涉及的头文件,linux/include/asm/arch-GFD/serial.h。
(2) 打开串口,Linux 下串口的设备文件是/dev/ttySO, /dev/ttySl 等。
(3) 设置串口,最基本的设置串口包括波特率设置,校验位和停止位设置。串口的设置主要是设置struct ermios 结构体的各成员值。
(4) 写数据到端口,数据到端口只需要使用write 系统调用去传送数据。
(5) 从端口读数据,以行数据模式操作端口,每个read 系统调用都会返回,不论多少字符实际存在于串行输入缓冲中。如果没有字符存在,调用将阻塞(等待)到有字符进入,或出现超时和错误。
3.4 用户主程序
图 6 主程序流程图
主程序主要为本系统提供应用操作,包含在自定义的user/ethterminal 文件夹中。系统初始化定义在SysInit()中,对自定义的参数进行初始化,如消息等。由于这里的人机交互模块是自定义的LCD 显示,没有用minigui 等来实现,而采用自定义图形显示函数来实现的键盘采用轮询方式检测,故有一部分设备初始化工作在这里完成。
系统自检:定义在 SystemCheck()中。对安全处理子系统、网络模块、存储模块等进行检测,并在显示器给出相应提示信息。
与监控服务器连接:定义在 SendDevStaToRemCtrl()中。主要用于通过网络来实现本系统的软件管理以及后继版本升级等。
在完成与监控服务器的连接后,网络安全终端 LCD 屏上会显示“XX 银行”的操作界面,开始等待用户的操作;若操作超时,将进入液晶屏保护程序,否则进入主菜单循环。
4 结束语
本文在银行交易系统对银行自助终端需求分析的基础上,提出了利用东南大学国家专用集成威廉希尔官方网站
系统工程技术研究中心自主研发的ARM7TDMI内核的嵌入式SoC芯片Garfield,设计出基于ucLinux 操作系统和TCP/IP 网络的银行自助设备——网络安全终端,通过原理图设计、操作系统移植、接口和应用程序的开发,本系统样机通过了银行模拟交易系统的测试,该终端系统达到了设计的要求。
举报