基于ARM9和Linux的嵌入式打印终端系统

基于ARM9和Linux的嵌入式打印终端系统
基于ARM9和Linux的嵌入式打印终端系统

河南理工大学

计算机科学与技术学院

课程设计报告

2012— 2013学年第一学期

课程名称:嵌入式系统课程设计

嵌入式打印终端系统

学生姓名:

学号:

专业班级:

指导教师:

2012 年 12月 23 日

目录

1 嵌入式打印终端系统的设计原理 (2)

2 嵌入式打印终端系统的硬件设计 (3)

2.1硬件开发平台S3C2410结构 (3)

2.2 嵌入式开发板 (3)

2.3打印机与开发板接口电路的设计 (3)

3 嵌入式打印终端系统的软件设计 (5)

3.1软件选型 (5)

3.2 打印机驱动的编写 (5)

3.3 扫描仪串口的设置 (7)

3.4 主应用程序的设计 (11)

参考文献 (12)

附录 (12)

基于ARM9和Linux 的嵌入式打印终端系统

引 言 随着开放源代码运动的飞速发展, Linux 操作系统越来越受到人们的 重视。其良好的可裁减性与可移植性, 卓越的效率和稳定性, 以及支持多种处 理 器体系架构的特点, 使得Linux 越来越广泛的应用于嵌入式领域。同时, ARM9 处理器高主频的处理速度、大容量的闪存芯片和MMU 控制单元的支持, 使得运 行嵌入式Linux 变得稳定而高效。本文设计与实现的打印终端系统, 正是基于 这两个软硬件平台搭建起来的。

1 嵌入式打印终端系统的设计原理

远程服务器

嵌入式开发板打印机

图1 嵌入式移动打印终端架构

嵌入式打印终端原理连接图如图1所示。主要由开发板、主机、打印机和扫描仪四部分组成。主机是一台PC 机。开发板采用的是三星公司S3C2410开发板,ARM9的核,跑的是2.4内核版本的嵌入式Linux 操作系统。扫描仪为超市等用的手持扫描仪。再加一台微型打印机接在开发板的GPIO 口上。

工作流程为:开发板将扫描仪的数据从串口读出,然后通过网口将数据发送给主机进行检索处理。开发板等待直至接收到主机处理完毕的数据后转发给打印机,将信息打印出来。

2 嵌入式打印终端系统的硬件设计

2.1硬件开发平台S3C2410结构

三星公司的S3C2410开发板用的是32位RISC架构基于ARM920T核,其增强的MMU单元、AMBA总线,可以支持Win CE、 Linux等实时操作系统。片上资源丰富接口众多,包含LCD控制器、USB Host、CS9800A网络芯片、SD卡、3个UART 通用异步串行口等设备接口。

2.2 嵌入式开发板

嵌入式开发板是本系统的核心部件,它担负着整个系统中心枢纽的重担,同时,它的选型也直接影响到上层操作系统和其它部件的选型。所以,在选择这个部件时,要站在整个系统的高度来进行。

选择嵌入式开发板要考虑的因素非常多,但必须首先考虑下面几个核心要素:

接口类型:在本系统中,嵌入式开发板连接着扫描仪、远程服务器和微型打印机。所以,开发板上必须具备和这些部件连接的接口,如和扫描仪连接时需要的RS-232C串口,和远程服务器连接时的网络接口,和微型打印机连接时的打印接口。

所支持的操作系统:嵌入式开发和单片机开发核心的区别之一就是嵌入式开发往往基于一个操作系统之上来进行。嵌入式操作系统种类繁多,各具特色,因此,必须要选择一个较通用和易用的操作系统平台。在本开发实例中,我们选择嵌入式Linux作为后面的平台开发。

性价比:如果作为产品来开发,必须要考虑产品在价格上的竞争要素。嵌入式开发板可以自己设计,也可以直接购买市场上已有的成熟开发板,当然这种开发板一定是能够满足使用的最小系统,即裁减掉任何用不到的多余软/硬件。如果选择购买其他公司已有的开发板,首先要看该开发板是否稳定,其次要看该开发板是否能够提供所需的软件,比如各个部件的驱动;再次要看开发板的售后支持。

2.3打印机与开发板接口电路的设计

我们使用的微型打印机使用的是并行接口。由于开发板上没有提供并口,所

以必须自己设计一个板卡接口电路,以连接打印机的并口和我们的嵌入式开发板。查看S3C2410的电路原理图,由于此系统不需要用到LCD屏,可以将板子上用于LCD连接的GPIO口进行改造,根据ARM9core的LCD电路引脚和板上的LCD 插槽定义,如图2,找到了14根空闲的GPIO口:

gpio_c8~gpio_d15,gpi0_d0~gpio_d4。用这14根通用输入输出口连接微型打印机的并口。

图2 核心core 的LCD引脚和板上LCD引脚原理图

同时查看打印机的电路手册和管脚定义,选用其STB选通线、ACK回答脉冲线、BUSY线、DATA0-DATA7数据线来与开发板的GPIO口相连,并初始化高低电平值。为了避免接线过紧互相干扰,制作一个接口板定义各引脚连接如图3所示。

至此,硬件的电路设计及连接基本完成。

图3 打印机并口与开发板GPIO口接口板设计图

3 嵌入式打印终端系统的软件设计

软件平台采用的是基于2.4内核的嵌入式Linux系统。采用的交叉编译器工具包为CROSS2.95.3.tgz(包含arm-linux-gcc等)。

3.1软件选型

嵌入式系统是一个软/硬件相结合的系统,硬件好比人的身体,而运行在其上的软件则好比人的灵魂。没有软件的驾驭,硬件只是一些废铜烂铁,因此,相比较硬件选型而言,软件的选择也异常重要。在整个软件选型中,要特别重视两个方面的因素:

运行其上的嵌入式操作系统:嵌入式操作系统是整个软件的核心和基础,的功能的强大与否直接影响后面整个系统的设计,因此必须加以重视。目前嵌入式操作系统有几百种之多,它们各具特色,各有相应的用武之地。通常来说,各个嵌入式开发板提供商,在其嵌入式开发板上会提供已经移植好的的几个嵌入式操作系统,这些操作系统通常为嵌入式Linux、Win CE、Vx Works和u CosII。uCosII 是一个非常好的教学操作系统,但由于其功能较少,在商用领域使用比较少。而Vx Works由于较昂贵的使用费用,在中小型公司中使用也较少。WinCE主要用于PDA等领域,嵌入式Linux由于其源码开放,共享资源丰富,整个系统功能异常强大,因此在嵌入式领域应用得也最为广泛。

软件驱动支持:由于不同的嵌入式开发板上提供的接口也各不相同,因此Linux内核源码包不可能提供所有外设接口的底层驱动。通常情况下,这些底层驱动或者由嵌入式开发板提供商做好后提供给用户使用,或者由用户自己开发出来。而底层驱动的开发是整个系统设计中比较耗时的工作,所以用户在选择开发板时,尽量选择已提供自己所需要的底层驱动的开发板,这样可以缩短项目的开发周期,减少项目投资,提高整个产品的竞争力。

3.2 打印机驱动的编写

Linux的设备分为块设备,字符设备和网络设备,该系统使用到的微型打印机属于字符设备,下面将具体说明如何设计打印机驱动。

3.2.1 定义设备名

#define DEVICE_NAME weida_printer

3.2.2 模块函数设计

在该系统中,采用模块化加载驱动程序的方法,因此必须实现模块的初始化函数和卸载函数。采用devfs方式注册打印机。

初始化函数weida_init通过devfs_register函数向系统注册设备。

函数原型devfs_register(NULL, DEVICE_NAME, DEVFS_FL_DEFAULT, 0, 0, S_IFCHR | S_IRUSR | S_IWUSR, &weida_printer_fops, NULL);

其中,DEVICE_NAME为主设备名,weida_printer_fops为定义的一个数据结构,用来实现的文件操作,包括open、close、write等。

3.2.3 初始化打印端口

初始化打印机第一个要做的事情就是要对GPIO口进行初始化,初始化函数如下:static void weida_init(void){

devfs_register(); /*注册设备驱动*/

set_gpio_ctrl(WEIDA_STB|GPIO_PULLUP_DIS|GPIO_MODE_OUT); /*设置STB口*/ write_gpio_bit(WEIDA_STB,1);

weida_printer_io_port_init();

/*设置其它IO口,以及赋初值*/ }

其中,WEIDA_STB为连接打印机选通口初始化为高电平,GPIO_PULL_DIS是设置是否需要上拉电阻,GPIO_MODE_OUT 设置GPIO口为输出口。最后使用module_init(weida_printer_init);采用模块方式加载驱动。

3.2.4打印机驱动测试程序设计

通过上面几个步骤,打印机驱动模块已经注册到内核,在/dev目录下可以找到weida_printer设备。编写如下简单程序测试代码。

int main(void)

{

int weida_fd,ret;

char *data=“Hello,welcom to use weida printer!“;

weida_fd=open(“/dev/weida_printer”,O_WRONLY); //打开/dev/weida_printer设备

if(weida_fd<0){

perror(“open device buttons”);

exit(1);

}

ret=write(weida_fd,data,strlen(data));//向打印机输出数据,打印“Hello……”字符串

if(ret!=strlen(data))

perror(“print wrong\n”);

ioctl(weida_fd,WEIDA_IOCSLINESPACE,1);

sleep(1);

ret=write(weida_fd,data,strlen(data));

if(ret!=strlen(data))

perror(“print wrong\n”);

close(weida_fd);

return 0;

}

3.2.5接口函数设计

ioctl()函数主要完成打印机字体、行距等参数的设置,在设计过程中必须解决用户数据和内核数据之间如何传递。从用户态读取数据,然后在内核态运行,可以使用copy_from_user函数来完成传递数据。

weida_printer_write ( )先对打印机是否在线,是否忙,是否准备好做进一步的判断,然后再进行打印。在打印的时候要注意每发一个字符要延迟150毫秒,因为如果打印数据发得过快打印机的来不急处理,所以要设置延时。open/close函数打开/关闭文件,因为在LINUX下设备都是当作文件来操作的,所以需要open和close这两个接口函数。

3.3 扫描仪串口的设置

嵌入式移动打印终端中使用到的扫描仪是串口扫描仪,这种扫描仪相对于USB接口的扫描仪来说,控制较简单,在扫描仪扫描后,可以直接从串口读取数据。

3.3.1 串口设置

设置串口速率函数:set_speed(int fd, int speed),其中fd 为打开的设备文件,speed为速率。

设置串口参数:set_parity(int fd,int data bits,int stop bits,int parity),data bits为有多少个数据位,stop bit为设置多少个停止位,parity 为奇偶校验位设置。设置串口波特率为9600,数据位为8位,一位停止位,没有校验位。

void set_speed(int fd,int speed)

{

int j;

int status;

struct termios Opt;

tcgetattr(fd,&Opt);

for(i=0;i

if(speed==name_arr[i]){

tcflush(fd,TCIOFLUSH);

cfsetispeed(&Opt,speed_arr[i]);

cfsetospeed(&Opt,speed_arr[i]);

status=tcsetattr(fd,TCSANOW,&Opt);

if(status!=0){

perror(“tcsetattr fd!”);

return;

}

tcflush(fd,TCIOFLUSH);

}

}

}

set_partity(int fd,int databits,int stopbits,int partity)用于设置串口的通信参数,其中databits设置数据位位数,stopbit设置停止位位数,partity设置奇偶校验位。具体的函数代码如下:

int set_partity(int fd,int databits,int stopbits,int partity) {

struct termiios options;

if(tcgetattr(fd,&options))!=0{

perror(“SetupSerial 1”);

return FALSE;

}

options.c_cflag &=~CSIZE;

switch(databits)

{

case 7:

options.c_cflag!=CS7;

break;

case 8:

options.c_cflag|=CS8;

break;

default:

fprintf(stderr,”Unsupported data size\n”);

return FALSE;

}

switch(partity)

{

case ‘n’:

case ’N’:

options.c_cflag=~PARENB;

options.c_cflag=~INPCK;

break;

case ‘o’:

case ’O’:

options.c_cflag|=(PARODD|PARENB); options.c_cflag|=INPCK;

break;

case ‘e’:

case ’E’:

options.c_cflag|=PARENB;

options.c_cflag&=~PARODD;

options.c_cflag|=INPCK;

break;

case ‘s’:

case ’S’:

options.c_cflag&=~PARENB;

options.c_cflag&=~CSTOP;

break;

default:

fprintf(stderr,”Unsupported partity\n”); return FALSE;

}

switch(stopbits)

{

case 1:

options.c-cfag&=~CSTOPB;

break;

case 2:

options.c-cfag|=CSTOPB;

break;

default:

fprintf(stderr,”Unsupported stop bits\n”); return FALSE;

}

3.3.2 编写读取扫描仪数据函数

首先打开设备文件,该系统中使用的串口为串口2,因此打开函数为:

open(“/dev/ttyS1”,O_RDWR|O_NONBLOCK|O_NDELAY);其中,O_RDWR表示可读可写,O_NONBLOCK表示非堵塞模式,O_NDELAY表示没有延迟,立即发出去。

3.3.3 客户端和服务器的socket编写

嵌入式打印终端采用C/S的模式,把PC机作为服务器,开发板作为客户端,通过以太网连接。客户端建立一个socket连接去寻找PC机上的服务程序。PC 机上同时也运行一个socket用来listen请求和绑定。采用的是TCP的连接方式。

3.4 主应用程序的设计

开发板上的应用程序Main函数注册两个线程p1和p2,两个全局数组c1和c2。线程p1将从串口读到的数据放入c1中,然后sent socket直接从c1中取走数据发送给服务器。线程p2负责将received socket数据放入c2数组中,然后直接从c2取走数据交给打印机去打印。

这里对线程使用了两个信号量,并初始化为:sem_init(&sem1,0,1); sem_init(&sem2,0,0);

两个线程的核心代码如下:

void thread1(void) {

打开串口;设置串口;建立连接;

while(1) {

sem_wait(&sem1);

从串口读书据;

用clinetsocket发送出去;

sem_post(&sem2);}

}

void thread2(void) {

打开打印机设备;

while(1) {

sem_wait(&sem2);

接收数据;扔给打印机;

sem_post(&sem1); }

}

如此可以使两个线程得以同步运行,并可以执行多次扫描和打印任务。

总结

本文创新点及其经济效益:本系统具有移动性强,功耗低等特点,而且与以往传统的用PC 机实现的打印终端相比,还具有低成本优势。能广泛地应用于超市收银系统,银行自动存取款机,等各种工业领域。把802.11g的无线网卡移植到开发板上,就可以成功实现和主机的无线通信,使得该系统更加便携。

参考文献

[1] ARM嵌入式系统原理及应用开发.谭会生.西安电子科技大学出版社,2012 .

[2] CORBET J, RUBINI A. LINUX设备驱动程序(第三版)[M]. 中国电力出社, 2006. 46-74 TP316.81

[3] 孙琼. 嵌入式LINUX应用程序开发详解[M]. 人民邮电出版社, 2006. 184-191 TP316.89

[4] 田家林,陈利学,寇向辉. LINUX嵌入式操作系统在ARM上的移植[J]. 微计算机信息, 2007,4-2:P60-62.

附录:(部分程序)

#define DEVICE_NAME “weida_printer”

#define WEIDA_MAJOR 234

module_init(weida_printer_init);

module_exit(weida_printer_exit);

MODULE_LICENSE(“GPL”);

static int module_init(weida_printer_init)

{

int ret;

ret=register_chrlev(WEIDA_MAJOR,DEVICE_NAME,&weida_printer_fops);

if(ret<0){

printf(DEVICE_NAME ”can’t register major number\n”);

return ret;

}

weida_printer_io_port_init();

weida_init();

printf(“weida_printer_init!\n“);

return ret;

}

gpio_data_tb[]={GPIO_C8,GPIO_C9,GPIO_C10,GPIO_C11,GPIO_C12,GPIO_13,GP IO_C14,GPIO_C15};

#define DATA_NUM((sizeof gpio_data_tab)/sizeof(gpio_data_tab[0])) #define WEIDA_DATA_READY GPIO_D0

#define WEIDA_ACK GPIO_D1

#define WEIDA_BUSY GPIO_D2

#define WEIDA_SELECT GPIO_D3

#define WEIDA_ERROR GPIO_D4

static void weida_printer_to_init(void)

{

int I;

unsigned gpio;

for(i=0;i

gpio=gpio_data_tab[i];

set_gpio_ctrl(gpio|GPIO_PULLUP_DIS|GPIO_MODE_OUT);

write_gpio_bit(gpio,0);

}

set_gpio_ctrl(WEIDA_DATA_READY|GPIO_PULLUP_DIS|GPIO_MODE_OUT);

set_gpio_ctrl(WEIDA_ACk|GPIO_PULLUP_DIS|GPIO_MODE_IN);

set_gpio_ctrl(WEIDA_BUSY|GPIO_PULLUP_DIS|GPIO_MODE_IN);

set_gpio_ctrl(WEIDA_SELECT|GPIO_PULLUP_EN|GPIO_MODE_IN);

set_gpio_ctrl(WEIDA_ERROR|GPIO_PULLUP_EN|GPIO_MODE_IN);

printf(“init port!\n”);

}

static int weida_printer_write(struct file *file,const char8 buffer,size_t count,loff_t *ppos)

{

unsigned char *kbuf;

int ready; //判断打印机是否忙

ready=read_gpio_bit(WEIDA_BUSY);

if(ready)

return –EBUSY;//判断打印机是否在线

readyread_gpio_bit(WEIDA_SELECT);

if(!ready)

return –EAGAIN;

ready=read_gpio-bit(WEIDA_ERROR);

if(!ready)

return –EINVAL;

kbuf=kmalloc(count+1,GFP_KERNEL);

memset(kbuf,”\0”,count+1);

if(copy_from_user(kbuf,buffer,count)){

printf(“copy form user wrong!”);

kfree(kbuf);

return –EFAULT;

}

while(*kbuf!=”\0”){

type_data(*kbuf);

while(read_gpio_bit(WEIDA_ACK))

printf(“%c”,*kbuf);

kbuf++;

}

Kfree(kbuf);

Return count;

}

static int weida_printer_ioctl(struct inode *inode,struct file *file,unsigned int cmd,unsigned long arg)

{

int num;

switch(cmd){

case WEIDA_IOCSFONTSPACE:

copy_form_user(&num,&arg,sizeof num);

SET_FONT_SPACE(num);

break;

case WEIDA_IOCSLINESPACE:

copy_form_user(&num,&arg,sizeof num);

SET_UNDERLINE(num);

break;

case WEIDA_IOCSUPLINE:

copy_form_user(&num,&arg,sizeof num);

SET_UPLINE(num);

break;

case WEIDA_IOCSCHARACTER1:

SELECT_CHARACTER1;

break;

case WEIDA_IOCSCHARACTER2:

SELECT_CHARACTER2;

break;

case WEIDA_IOCSDOT_MATRIX:

copy_form_user(&num,&arg,sizeof num); SELECT_DOT_MATRIX(num);

break;

case WEIDA_IOCWEIDA:

INIT_WEIDA;

break;

case WEIDA_IOCLAMPLIFY:

copy_form_user(&num,&arg,sizeof num); LANDSCAPE_AMPLIFY(num);

break;

case WEIDA_IOCVAMPLIFY:

copy_form_user(&num,&arg,sizeof num); VERTICAL_AMPLIFY(num);

break;

case WEIDA_IOCSLANDSCAPE:

SET_LANDSCAPE;

break;

case WEIDA_IOCSVERTICAL:

SET_VERTICAL;

break;

case WEIDA_IOCSRIGHTLIMIT:

copy_form_user(&num,&arg,sizeof num); SET_RIGHT_LIMIT(num);

break;

case WEIDA_ IOCSLEFTLIMIT:

copy_form_user(&num,&arg,sizeof num); SET_LEFT_LIMIT(num);

break;

case WEIDA_ IOCSHEX_PRINT:

copy_form_user(&num,&arg,sizeof num); HEX_PRINT(num);

break;

case WEIDA_ IOCS2HANZI:

SET_2_HANZI;

break;

case WEIDA_ IOCC2HANZI:

CLEAR_2_HANZI;

break;

default:

return –EINVAL;

}

printf(“ioctl!\n”);

return 0;

}

void set_speed(int fd,int speed)

{

int j;

int status;

struct termios Opt;

tcgetattr(fd,&Opt);

for(i=0;i

if(speed==name_arr[i]){

tcflush(fd,TCIOFLUSH);

cfsetispeed(&Opt,speed_arr[i]);

cfsetospeed(&Opt,speed_arr[i]);

status=tcsetattr(fd,TCSANOW,&Opt);

if(status!=0){

perror(“tcsetattr fd!”);

return;

}

tcflush(fd,TCIOFLUSH);

}

}

}

int set_partity(int fd,int databits,int stopbits,int partity) {

struct termiios options;

if(tcgetattr(fd,&options))!=0{

perror(“SetupSerial 1”);

return FALSE;

}

options.c_cflag &=~CSIZE;

switch(databits)

{

case 7:

options.c_cflag!=CS7;

break;

case 8:

options.c_cflag|=CS8;

break;

default:

fprintf(stderr,”Unsupported data size\n”);

return FALSE;

}

switch(partity)

{

case ‘n’:

case ’N’:

options.c_cflag=~PARENB;

options.c_cflag=~INPCK;

break;

case ‘o’:

case ’O’:

options.c_cflag|=(PARODD|PARENB); options.c_cflag|=INPCK;

break;

case ‘e’:

case ’E’:

options.c_cflag|=PARENB;

options.c_cflag&=~PARODD;

options.c_cflag|=INPCK;

break;

case ‘s’:

case ’S’:

options.c_cflag&=~PARENB;

options.c_cflag&=~CSTOP;

break;

default:

fprintf(stderr,”Unsupported partity\n”); return FALSE;

}

switch(stopbits)

{

case 1:

options.c-cfag&=~CSTOPB;

break;

case 2:

options.c-cfag|=CSTOPB;

break;

default:

fprintf(stderr,”Unsupported stop bits\n”); return FALSE;

}

//set input partity option

If(partity!=’n’)

Options.c_iflag|=INPCK;

Tcflush(fd,TCIFLUSH);

options.c_cc[VTIME]=1;

options.c_cc[VMIN]=1;

options.c_lflag &=~(ICANON|ECHO|ECHOE|ISIG); options.c_oflag &=~OPOST;

if(tcsetattr(fd,TCSANOW,&options)!=0)

{

Perror(“SetupSeriel 3”);

Return FALSE;

}

return TRUE;

}

基于STM32嵌入式系统的智能控制网络终端设计

基于STM32嵌入式系统的智能控制网络终端设 计 时间:2010-05-06 14:01:36 来源:作者:王铁流秦璐璐李宗方高嵩智能网络终端是实现智能化管理的嵌入式终端设备。通常具有安全门禁系统和自动化控制的基本功能。本文重点介绍基于STM32的智能嵌入式终端的网络控制功能的设计和实现。 1智能网络通信实现方案 将嵌入式系统与Internet连接起来实现远距离信息获取和控制功能的本质是嵌入式系统本身能够实现TCP/IP网络通信协议。该协议的解决方案总体上可分为两大类。第一类是直接在嵌入式设备上实现TCP/IP,使之直接连上Internet。这实质上是由MCU及内部固化TCP/IP协议的芯片组成应用系统的核心,MCU可以直接拨号上网,这种方法的硬件电路相对简单,也不需要中间环节的支持。但是由于使用了TCP/IP协议芯片,因此需要大容量的程序存储器,而且要求MCU有较高的运行速度。同时,应用程序设计师还必须熟悉TCP/IP协议,且软件设计复杂,工作量大。目前,此方案的典型代表有SX-stack、Sciko公司的S7600A芯片;第二类是使嵌入式设备经过通信转换后,再通过公用的TCP/IP转接口(网关Gateway)与Intemet相连。目前有以下几种方式: (1)通过使用独立于微控制器MCU的专用的网络接口芯片来完成单片机与网关间的协议转换,并以此作为链接到Internet的桥梁。例如韩国WIZnet公司的W5100芯片; (2)用单片机控制以太网网卡进行数据传输,此时必须加载TCP/IP协议到单片机中; (3)用代理协议来完成与网关间的协议转换。 本设计采用独立于微控制器MCU的专用网络接口芯片来实现TCP/IP协议,微处理器选择STM32F103VB,网络芯片选择W5100。二者通过SH接口进行连接,其连接示意图如图1所示。 2硬件平台的设计 2.1 总体设计 本系统的硬件可分为采集模块、处理模块、键盘和显示模块、传输模块、控制模块和供电模块等。其中采集模块负责采集信息;处理模块负责控制整个系统的工作,处理和

arm9嵌入式课后答案

arm9嵌入式课后答案 【篇一:arm嵌入式系统结构与编程习题答案(全)】ass=txt>第一章绪论 1. 国内嵌入式系统行业对“嵌入式系统”的定义是什么?如何理解?答:国内嵌入式行业一个普遍认同的定义是:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能,可靠性,成本,体积,功耗严格要求的专业计算机系统。从这个定义可以看出嵌入式系统是与应用紧密结合的,它具有很强的专用性,必须结合实际系统需求进行合理的剪裁利用。因此有人把嵌入式系统比作是一个针对特定的应用而“量身定做”的专业计算机系统。 2.嵌入式系统是从何时产生的,简述其发展历程。 答:从20世纪70年代单片机的出现到目前各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了30多年的发展历史。 嵌入式系统的出现最初是基于单片机的。intel公司1971年开发出第一片具有4位总线结构的微处理器4004,可以说是嵌入式系统的萌芽阶段。80年代初的8051是单片机历史上值得纪念的一页。20世纪80年代早期,出现了商业级的“实时操作系统内核”,在实时内核下编写应用软件可以使新产品的沿着更快,更节省资金。20世纪90年代实时内核发展为实时多任务操作系统。步入21世纪以来,嵌入式系统得到了极大的发展。在硬件上,mcu的性能得到了极大的提升,特别是arm技术的出现与完善,为嵌入式操作系统提供了功能强大的硬件载体,将嵌入式系统推向了一个崭新的阶段。 3.当前最常用的源码开放的嵌入式操作系统有哪些,请举出两例,并分析其特点。答:主要有嵌入式linux和嵌入式实时操作内核uc/os-ii 嵌入式linux操作系统是针对嵌入式微控制器的特点而量身定做的一种linux操作系统,包括常用的嵌入式通信协议和常用驱动,支持多种文件系统。主要有以下特点:源码开放,易于移植,内核小,功能强大,运行稳定,效率高等。 uc/os是源码工卡的实时嵌入式系统内核,主要有以下特点:源码公开,可移植性强,可固化,可剪裁,占先式,多任务,可确定性,提供系统服务等。

嵌入式终端设备的一种自动化测试技术

-1 -嵌入式终端设备的一种自动化测试技术 广州海格通信集团有限公司 韦 卉 吕金华 【摘要】本文主要探讨一类嵌入式终端设备的自动化测试技术。鉴于嵌入式软件依赖硬件运行的特殊性,本文提出一种自动化测试的模型——U模型,本模型提供了嵌入式系统自动控制和自动测试的一种解决方案。 【关键词】嵌入式系统;自动化测试;U模型 1.自动化测试概况 1.1 趋势 自动化测试实际上是软件测试的一种,以往的测试工作都是通过测试工程师手工执行测试用例完成的,而自动化测试则是通过执行测试程序自行完成并自动检验测试结果。随着当前测试技术的发展,自动化测试越来越多的出现在人们的视野里,越来越多的吸引更多的科技人员的目光。由于自动化测试可以大大节省测试劳动力,节约测试时间,大量缩短项目周期,为公司节约很多研发成本,对企业经营带来极大的效益。因此,越来越多的企业开始重视和发展自己的自动化测试技术。 1.2 现状 我们工作中接触的嵌入式终端为无线通信领域终端,具备语音通信、数据通信等业务功能。该种设备对于极限距离的业务测试要求非常严苛,需要经过成百上千甚至成千上万次的测试和长时间(往往是连续七天以上)连续不间断的运行,来验证产品的可靠性和稳定性,如果仅依靠人工操作,将会非常消耗人力,而且几乎是不可能完成的任务。因此探求一种自动化测试方法迫在眉睫。我们所研发的通信设备属于嵌入式终端设备,对于嵌入式系统的自动化测试,在业界也是非常少见。在此,我们提出一种自动化测试模型——U模型,来实现嵌入式终端设备的自动化测试。 2.自动化测试模型 2.1 U模型提出 图1 U模型 根据我们的研究,提出了一种命名为U模型的自动化测试技术。如图1所示,左边框图属于控制系统,控制PC为一台工作中使用的个人电脑,上面安装着windows操作系统。处于顶层的业务测试程序是根据测试被测系统功能、性能、各种质量属性等测试用例编写的测试脚本。处于第二层的控制台软件自行开发编写的软件。右边框图属于被测系统,处于顶层是被测业务是我们将要测试软件特性,处于第二层的是被测软件的应用程序,处于第三层的是被测系统所使用的操作系统。再往底层一点则是控制系统和被测系统都支持的通信接口驱动和通信硬件接口。 2.2 U模型原理 接下来我们来介绍一下U模型的工作原理: (1)业务测试程序负责下发测试指令以及检验被测系统的表现是否符合预期,相当于软件测试中的测试用例的一样。 (2)控制台软件是一款在PC上自行开发的软件,它包括对业务测试程序的解释执行功能、脚本工程的管理功能和脚本编辑等功能。 另外,还负责把测试程序下发的指令通过调用 成windows操作系统API的方式,封装成底层通 信接口能使用的数据帧。 (3)Windows操作系统,控制台软件运行 在其之上,使用它提供的各种操作系统服务, 特别是I/O管理服务。 (4)通信接口驱动实现通信接口硬件初 始化、数据存储、数据发送、数据传输和数据 接收等。 (5)通信硬件接口是PC机上的通信接口 支持类型,一般为串口、网口、USB口等。被 测系统上也需要有同样的接口类型。 (6)在被测系统中,各层软件的作用其 实与PC控制系统上差不多,在此就不再赘述。 值得注意的是,被测系统的业务应用处理程序 或者被测功能模块,在接收到控制系统下发的 命令后,会给予一定响应(比如某些设备状 态、参数的改变,或者返回指定的数值给控制 系统)。这些响应的信息通过被测系统的通信 接口返回给控制系统。这样就完成了控制系统 和被测系统的交互。 另外,还需要事先定义好一个命令集以及 各条命令所带来的所有可能的预期结果。这个 命令集和它们所返回的预期结果是业务测试程 序需要使用和检验的,正是这些命令集和结果 集构成了自动化测试用例集。 通过以上的系统建模,我们就可以通过测 试脚本与被测系统完成交互、监控和测试了。 由此,可以达到测试被测系统的目的。 基于以上的讨论我们可以看到,U模型中 各层完成的功能各自不同,缺一不可,每个系 统中都是高层使用底层提供的服务完成本层的 工作。控制系统和被测系统上运行着两个不一 样的操作系统,实际上也完成了不同操作系统 之间的数据通信。 3.项目应用 根据上面提出的U模型,我们搭建了一个 自动化测试平台,硬件上包括个人工作电脑PC 机和待测终端设备A,两者通过通信接口—— 串口来完成通信及数据交换。如图2所示: 工作PC 图2 应用组网图 同时,我们开发了一个控制台软件,其操 作界面如图3所示。 从图3中可以看到,左边红色框中的“业 务测试脚本列表”是一系列测试脚本文件的树 状图,实现的是脚本工程的管理,在脚本执行 完成后,到底是成功还是失败,会有结果状态 显示在被执行脚本的后面。中间红色框为“脚 本编辑和查看区”,实现的是脚本编辑和查看 功能。最右边的框是“脚本输出区”,是调试 脚本的输出和执行结果输出显示的地方,这里 也有一个结果统计功能,比如本次测试执行了 多少个脚本,成功了多少个,失败了多少个, 都会在这里有所体现。在这个控制台软件界面 上,我们开发了语音业务测试脚本,实现了语 音通话的各种业务的自动化测试。 图3 控制台软件界面 另外,在被测的终端设备上,我们定义 好一套命令集以及返回值列表,命令集比如重 启命令、读取工作模式命令、设置音量大小等 等,约100多条命令。返回值列表是对一系列 命令的返回值定义了特殊的含义,比如0表示 操作失败,1表示操作成功等。这样一个命令 集以及返回值列表来自于测试工程师,由测试 工程师提供所需要使用的测试命令及返回值, 由控制台软件开发工程师和终端软件开发工程 师来共同实现。 完成以上的工作,一个嵌入式终端设备的 自动化测试平台就搭建完成了。在这个测试平 台上,我们的测试工程师开发了语音业务测试 脚本,实现了语音通话的各种业务的自动化测 试。在完成业务测试脚本编写和调试之后,就 可以根据测试任务勾选上所需要执行的脚本, 直接执行就可以了。 4.推广意义 U模型这种测试技术,具有通用性,可以 广泛应用到各种嵌入式系统终端设备的自动化 测试中去。把自动化测试引入的项目中去,既 可以大大节省人力成本,又可以完成手工无法 完成的穷尽测试,对产品的质量把控可以更严 格,对于提升产品质量具有伟大的意义。 参考文献 [1]黄鹏,廖红华,嵌入式系统综述[J].电工技术,2006. [2](美)DanielJ.Mosley,(美)BruceA.Posey.软件测试自动化 [M].邓波等,译.机械工业出版社,2003. 作者简介: 韦卉(1981—),女,广西梧州人,大学本科,软件 测试师,现供职于广州海格通信集团股份有限公司, 研究方向:嵌入式软件测试。 吕金华(1982—),女,广东江门人,大学本科,软 件设计师,现供职于广州海格通信集团股份有限公 司,研究方向:嵌入式软件设计。

自助办税终端业务功能操作流程

自助办税终端业务功能操作流程 一、IC卡报税 1.纳税人先通过外网提交申报信息、足额缴纳本期应征税款,并在公司执行IC卡抄 税,将开票数据写入IC卡内。 2.在自助终端上进行IC卡报税操作,流程如下: (1)选择系统登录方式:“办税服务卡登录”、“CA登录”或“输入税号登录” ●选择“办税服务卡登录”时,将办税服务卡放在ARM机右上方的“身份 识别感应区”,待系统读取出税号信息后点击“确定”按钮。 ●选择“CA登录”时,先将CA证书插在ARM机操作屏幕左下方的USB 接 口上,再点击“CA登录”功能菜单按钮,待系统读取出税号信息后点击 “确定”按钮。 ●选择“输入税号登录”时,通过ARM机操作界面上的软键盘输入您的纳 税人识别号信息,点击“确定”按钮; (2)根据语音提示输入8位机器操作密码;初次使用时请点击“修改密码”按钮, 修改为您自己的密码,系统初始密码为“12345678”; (3)选择“IC卡报税”功能模块,根据语音及界面操作提示,将企业报税IC卡插 入读卡器中,插卡时注意有芯片的一面朝上,点击“确定”按钮。 (4)终端读取出IC卡内的报税数据后,点击“报税”按钮。 (5)系统自动将本次IC卡报税数据与网上申报数据进行增值税一般纳税人销项比 对,比对成功后点击“保存”按钮,本期未缴税款为0时,系统自动对报税IC 卡清零解锁;否则系统不对报税IC卡清零解锁。 (6)报税成功后,点击“退出”按钮,本次IC卡报税流程结束,退出系统。 说明:IC卡非征期报税时只将本次开票数据读入到税局业务系统,不扣缴税款。 操作流程同IC卡征期报税流程。 二、发票认证 自助终端支持“增值税专用发票、货运增值税专用发票、货物运输发票及机动车销售发票认证”。在自助终端上进行发票认证时,操作流程如下: (1)选择系统登录方式:“办税服务卡登录”、“CA登录”或“输入税号登录” ●选择“办税服务卡登录”时,将办税服务卡放在ARM机右上方的“身份

基于ARM9和Linux的嵌入式打印终端系统

.. . . 理工大学 计算机科学与技术学院 课程设计报告 2012— 2013学年第一学期 课程名称:嵌入式系统课程设计 嵌入式打印终端系统 学生: 学号: 专业班级: 指导教师:

2012 年12月23 日 目录 1 嵌入式打印终端系统的设计原理 (2) 2 嵌入式打印终端系统的硬件设计 (3) 2.1硬件开发平台S3C2410结构 (3) 2.2 嵌入式开发板 (3) 2.3打印机与开发板接口电路的设计 (3) 3 嵌入式打印终端系统的软件设计 (5) 3.1软件选型 (5) 3.2 打印机驱动的编写 (5) 3.3 扫描仪串口的设置 (7) 3.4 主应用程序的设计 (11) 参考文献 (12) 附录 (12)

基于ARM9和Linux 的嵌入式打印终端系统 引 言 随着开放源代码运动的飞速发展, Linux 操作系统越来越受到人们的 重视。其良好的可裁减性与可移植性, 卓越的效率和稳定性, 以及支持多种处 理 器体系架构的特点, 使得Linux 越来越广泛的应用于嵌入式领域。同时, ARM9 处理器高主频的处理速度、大容量的闪存芯片和MMU 控制单元的支持, 使得运 行嵌入式Linux 变得稳定而高效。本文设计与实现的打印终端系统, 正是基于 这两个软硬件平台搭建起来的。 1 嵌入式打印终端系统的设计原理 远程服务器 嵌入式开发板打印机 图1 嵌入式移动打印终端架构 嵌入式打印终端原理连接图如图1所示。主要由开发板、主机、打印机和扫描仪四部分组成。主机是一台PC 机。开发板采用的是三星公司S3C2410开发板,

ARM9的核,跑的是2.4核版本的嵌入式Linux操作系统。扫描仪为超市等用的手持扫描仪。再加一台微型打印机接在开发板的GPIO口上。 工作流程为:开发板将扫描仪的数据从串口读出,然后通过网口将数据发送给主机进行检索处理。开发板等待直至接收到主机处理完毕的数据后转发给打印机,将信息打印出来。 2 嵌入式打印终端系统的硬件设计 2.1硬件开发平台S3C2410结构 三星公司的S3C2410开发板用的是32位RISC架构基于ARM920T核,其增强的MMU单元、AMBA总线,可以支持Win CE、Linux等实时操作系统。片上资源丰富接口众多,包含LCD控制器、USB Host、CS9800A网络芯片、SD卡、3个UART通用异步串行口等设备接口。 2.2 嵌入式开发板 嵌入式开发板是本系统的核心部件,它担负着整个系统中心枢纽的重担,同时,它的选型也直接影响到上层操作系统和其它部件的选型。所以,在选择这个部件时,要站在整个系统的高度来进行。 选择嵌入式开发板要考虑的因素非常多,但必须首先考虑下面几个核心要素: 接口类型:在本系统中,嵌入式开发板连接着扫描仪、远程服务器和微型打印机。所以,开发板上必须具备和这些部件连接的接口,如和扫描仪连接时需要的RS-232C串口,和远程服务器连接时的网络接口,和微型打印机连接时的打印接口。 所支持的操作系统:嵌入式开发和单片机开发核心的区别之一就是嵌入式开

教你玩转远程终端打印机

教你玩转远程终端打印机 导读:打印机是现代化办公必不可少的设备,因而如何高效而又经济地使用打印机是用户们普遍关心的问题。下面,提供远程终端打印机的使用的技巧与方法,虽然没有多少秘密可言,但是如果能正确地执行它,相信一定会提高你的工作也会有所帮助的. 操作步骤: 在客户机上安装打印机驱动。 远程桌面连接到服务器,在服务器端也安装该型号的打印机驱动,并设置好打印样式。 通过ERP 自己的远程程序(其实用的就是windows terminal server TCP3389 端口)连接到ERP服务器数据库,打印表单时选择这个打印机即可。 参考说明: 远程桌面使用本地打印机 A方案:从远程会话打印到本地打印机 打印机重定向将打印作业从终端服务器或“远程桌面”计算机路由到本地计算机(也称为“客户端计算机”)连接的打印机。访问本地打印机有两种方式:自动的打印机重定向和手动的打印机重定向。当在远程计算机上运行的Windows 版本中没有本地打印机所需要的驱动程序时,使用手动重定向。 自动打印机重定向 当本地打印机使用安装在服务器上的驱动程序时,打印机自动重定向。当登录到终端服务器上的会话,或运行Windows Professional 或Server 和“远程桌面”的计算机时,将自动检测网络打印机以及客户端(本地)计算机上安装的所有打印机,并在服务器上创建本地队列。该服务器可以使用默认打印机的客户端打印机设置和一些属性(例如双面打印)。 当您断开连接或结束会话时,打印机队列将被删除,且不完整或待打印作业将丢失。有关客户端的本地打印机和设置的信息都保存在客户端计算机上。在以后登录时,使用存储在客户端计算机上的信息创建打印机队列。 如果在该服务器上找不到打印机驱动程序,则在日志中记录事件,而且不创建客户端打印机。为使打印机可用,必须在远程计算机上手动安装驱动程序。 注意 远程计算机上运行的程序可以使用重定向打印机。重定向的打印机显示在控制面板的“打印机和传真”文件夹中,并且以如下格式命名:客户端打印机名称(来源于客户机名称)。 断开连接或注销会话时,打印队列将被删除,而且尚未完成或挂起的打印作业将被取消。 手动打印机重定向 虽然不支持手动重定向通过USB 端口连接的打印机,但可手动重定向连接到客户端(本地)计算机上的LPT 和COM 端口的打印机。 要手动重定向客户端打印机,请与管理员联系并提供计算机的名称(或对基于Windows 的终端则提供IP 地址)。客户端必须在手动重定向期间连接到远程计算机。 在初次进行手动重定向之后,打印机将在以后的登录过程中自动重定向

基于ARM9的人脸识别系统 嵌入式报告 课程设计

嵌入式课程设计报告 学院信息电子技术 专业通信工程 班级 学号 姓名 指导教师 2017年07月01日

基于ARM9的人脸识别系统 一、引言 人脸识别背景和意义 人脸识别系统的研究始于20世纪60年代,80年代后随着计算机技术和光学成像技术的发展得到提高,而真正进入初级的应用阶段则在90年后期,并且以美国、德国和日本的技术实现为主;人脸识别系统成功的关键在于是否拥有尖端的核心算法,并使识别结果具有实用化的识别率和识别速度;“人脸识别系统”集成了人工智能、机器识别、机器学习、模型理论、专家系统、视频图像处理等多种专业技术,同时需结合中间值处理的理论与实现,是生物特征识别的最新应用,其核心技术的实现,展现了弱人工智能向强人工智能的转化语音识别、体形识别等,而指纹识别、虹膜识别等都不具有自然性,因为人类或者其他生物并不通过此类生物特征区别个体。 人脸识别具有这方面的特点,它完全利用可见光获取人脸图像信息,而不同于指纹识别或者虹膜识别,需要利用电子压力传感器采集指纹,或者利用红外线采集虹膜图像,这些特殊的采集方式很容易被人察觉,从而更有可能被伪装欺骗。 二、系统设计 1、硬件电路设计 (1)ARM9处理器 本系统所采用的硬件平台是天嵌公司的TQ2440开发板,该开发板的微处理器采用基于ARM920T内核的S3C2440芯片。 ARM9对比ARM7的优势:虽然ARM7和ARM9内核架构相同,但ARM7处理器采用3级流水线的冯·诺伊曼结构,而ARM9采用5级流水线的哈佛结构。增加的流水线设计提高了时钟频率和并行处理能力。5级流水线能够将每一个指令处理分配到5个时钟周期内,在每一个时钟周期内同时有5个指令在执行。在常用的芯片生产工艺下,ARM7一般运行在100MHz左右,而ARM9则至少在200MHz 以上。指令周期的改进对于处理器性能的提高有很大的帮助。性能提高的幅度依赖于代码执行时指令的重叠,这实际上是程序本身的问题。对于采用最高级的语言,一般来说,性能的提高在30%左右。ARM7一般没有MMU(内存管理单元),(ARM720T有MMU)。 (2)液晶显示屏 为显示摄像头当前采集图像的预览,系统采用三星的320x240像素的液晶屏,大小为206.68cm。该液晶显示屏的每个像素深度为2bit,采用RGB565色彩空间。 (3)摄像头 摄像头采用市场上常见的网眼2000摄像头,内部是含CMOS传感器的OV511+芯片。CMOS传感器采用感光元件作为影像捕获的基本手段,核心是1个感光二极

《嵌入式系统》设计方案

移动打印终端终嵌入式系统设计方案 阅读目录 一项目概述 (2) 二系统总体架构 (2) 2.1.1 各功能部件作用 (3) 2.2.1 手持式扫描仪 (3) 2.2.2 嵌入式开发板 (4) 2.2.3 微型打印机的选型 (5) 2.2.4.远程服务器 (5) 三软/硬件设计 (5) 3.2 硬件设计 (7) 3.2.1 嵌入式开发板和扫描仪的连接 (7) 3.2.2嵌入式开发板和远程服务器的连接 (7) 3.2.3 嵌入式开发板和微型打印机的连接 (7) 四各驱动程序的设计(软件设计) (7) 4.1 打印机驱动的设计 (7) 4.1.1定义设备号和设备名 (7) 4.1.2 设备驱动初始化函数和清除函数 (8) 4.编译扫描仪制备驱动 (12) 5.加载设备 (12) 4.1.3 扫描仪驱动设计 (13) 4.1.4 网络通信模块及服务器的开发 (14) 4.1.5系统应用程序设计 (15) 五系统调试 (16)

一 项目概述 1.1 系统设计的必要性与PC 终端的比较 在信息社会中,打印终端应用非常广泛,比如超市的收银系统、图书管的借还书系统、移动营业厅的话费打印系统等场合,我们都可以看到打印终端的身影。传统打印终端通常都是由PC 加上一个微型打印机构成,这种架构的打印终端价格比较昂贵,体积庞大,移动笨拙,使用十分不方便。 随着嵌入式技术的发展,许多原来基于PC 的应用都纷纷转向基于嵌入式技术来实现。基于嵌入式技术的产品具有非常明显的优势,如价格便宜、功耗低、体积小及移动方便等。 具体到打印终端这个产品上来说,可以从下表看出基于PC 的打印终端和基于嵌入式的打印 1.2 系统的主要功能 本项目实例中拟开发的嵌入式移动打印终端是解决从数据输入、数据处理和数据输出的一体化系统,它提供下列几个功能 ● 数据录入功能:支持从扫描仪端录入数据; ● 通过网络到数据库查询; ● 数据打印功能 二 系统总体架构 嵌入式移动终端是一套完整的嵌入式应用系统,包括和硬件和软件两部分,这一节先说一下硬件方面的设计。 2.1 系统硬件组成的部件 ● 数据输入部件(手持扫描仪)—完成数据输入功能; ● 数据处理部件(嵌入式开发板和远程服务器)—完成数据处理任务 ● 数据输出部件(微型打印机)—完成数据打印功能; 各个部件之间的关系如图

基于ARM的嵌入式VoIP终端的设计与实现.

基于ARM的嵌入式VoIP终端的设计与实现 张鹏马伟敏唐棣芳 (上海交通大学) 摘要:提出了一种基于ARM的嵌入式VolP终端平台。接XPSTN幂n家庭宽带,可以实现拨打IP电话 和普通PsTN电话的功能。与现有voIP设备相比,具有成本低,方便易用等优点。给出了该平台的硬件 和软件构成。 关键词:VolP,嵌入式,DSP,ARM DesignandImplementationofEmbeddedVolPSystemBased Zhang Peng Ma Weiming Tang Difang on ARM (ShanghaiJiaotongUniVeTSity200030)AbstandhomeThe r act:Anembeddedsystembased current on ARMisintroduced.whichisconnected ischeaperand more toPSTN network.ComparedtoVolPequipment,itis given. convenient. descriptionofitshardwareKeywords:VolP,Embedded

andsoftware System,DSP,ARM 0.概述 近年来,VolP技术在全球范围内迅速发展,得到越来越广泛的应用,VolP设备的数量正在迅速增加。目前应用最广泛的是以Skype为代表的VolP软件和与Skype相连接的设备。但是这些设备或多或少都有如下一些不足之处: 1.不能脱离电脑运行: 2.需要特殊ID或者号码,改变了普通电话用户的使用习惯; 3.不是真正的点对点(需要服务器支持,运营成本高);4.拨打普通电话需要额外付费 文章针对现有VolP设备的不足之处,提出了一种基于ARM的嵌入式VoIP终端平台。该终端与普通电话机相连,并且接入PSTN线路和家用宽带网络,以极其便捷的方式提供用户使用VoIP系统,节省用户的大量通讯费用。‘ 系统中最核心的部分主处理器采用Winbond公司的W90N740,这是一颗高性能低功耗的ARMTTDMI芯片。它最高可以工作在80MHz,具有片上指令和数据CACHE,外部总线,2个以太网控制器以及20个GPl0等。本系统中W90N740外部扩展了8MBFLASH和16MBSDRAM。外部FLASH中除了存放程序外,还有初始化的设置参数,DSP运行所需的语音CODEC代码等。 系统中采用了一颗TI公司的DSPTMS320VC5402处理语音数据。该DSPI作在IOOMHz;具有片上SRAM,可以作为数据和程序RAM:两个McBSP接口:通过HPI总线实现与ARM的通信。 电话接口芯片分为FXS和FXO,分别实现与普通电话机和PSTN线路的连接。FXS(ForeignExchangeStation外部交换站)相当于一台数字电话交换机,与普通模拟电话相连,实现馈电,振铃,线路监测,测试等功能。FXO(ForeignExchangeOffice#b部交换局)相当于一台数字电话机的功能,可以接入PSTN网络。DSP通过McBSP接口与电话接口芯片通信,收发PCM语音数据。ARM通过SPI总线访问电话接口芯片的内部寄存器,实现对其 的控制。 1.硬件方案设计

自助查询打印终端业务规范

河北聚点 河北聚点科技电子有限公司 自助查询打印终端 业务规范 河北聚点科技电子有限公司 二零一四年三月

目录 1.概述 (2) 2.自助查询打印终端的定义及定位 (2) 2.1自助查询打印终端的定义 (2) 2.2 自助查询打印终端的定位 (2) 3.自助查询打印终端的配置原则 (2) 4.自助查询打印终端功能规范 (3) 4.1自助查询打印终端基本业务功能介绍 (3) 4.2后台管理及统计分析 (7) 5.自助查询打印终端硬件配置及外观要求 (18) 5.1自助查询打印终端硬件配置 (18) 5.2自助查询打印终端硬件外观 (20) 6.自助查询打印终端的运营管理 (21) 6.1自助查询打印终端运营管理目的 (21) 6.2自助查询打印终端运营管理适用范围 (21) 6.3日常运营管理 (22) 7.投诉处理及客服流程 (23) 7.1话费查询有误 (23) 7.2业务办理故障 (23) 7.3详单打印故障 (24)

1.概述 为了适应中国医疗发展新趋势需要,更好地贯彻以“客户为主导、服务为中心”的经营理念,须构建一个全方位的自助查询服务系统(简称:自助查询打印终端),为中国医疗行业提供强有力的业务支持和信息化保障,塑造良好的客户服务形象,提升服务能力和市场竞争力。 本规范对自助查询打印终端(可含业务办理)以下简称“自助查询打印终端”的业务、服务、技术、售后等各方面进行规范和要求,可根据实际业务发展需求进行调整和完善。 2.自助查询打印终端的定义及定位 2.1自助查询打印终端的定义 自助查询打印终端是指通过便捷的人机交互界面,采用触摸的操作方式为客户提供医疗挂号、就诊、查询、帐详单打印,并扩展到业务办理功能的自助服务终端。 各省市医疗单位可以根据实际需求选择是否在自助查询打印终端上增加业务办理功能。 2.2 自助查询打印终端的定位 自助查询打印终端是通过信息化的方式提就医消费查询、帐单详明细打印功能或业务办理的自助渠道。自助查询打印终端可设置在24小时自助营业厅,也可设置在现有门诊大厅内形成自助服务区,为客户提供便捷、快速的自助查询服务。 3.自助查询打印终端的配置原则 自助查询打印终端在营业厅的配置,首先应考虑营业厅所在区域,根据其所在区域的功能划分,依据营业厅面积大小、交易总量确定该营业厅自助查询打印终端的配置数量。

【系统操作手册】高校自助打印服务系统用户操作手册

自助打印服务系统 操 作 手 册 V2.0-1.0 2015-07 版权声明和保密须知 本文件中出现的任何文字叙述、文档格式、插图、照片、方法、过程等内容,除另有特别注明,版权均属江苏金智教育信息股份有限公司所有,受到有关产权及版权法保护。任何单位和个人未经江苏金智教育信息股份有限公司的书面授权许可,不得复制或引用本文件的任何片断,无论通过电子形式或非电子形式。

1自助服务管理端 (4) 1.1自助服务 (4) 1.1.1配置服务终端 (4) 1.1.2打印项目设置 (7) 1.1.3监视项设置 (11) 1.1.4终端状态监控 (12) 1.1.5远程开关机 (13) 1.1.6认证地址设置 (14) 1.1.7学校管理员维护 (15) 1.1.8超时时间设置 (16) 1.1.9语音播报设置 (17) 1.1.10拍照设置 (18) 1.1.11皮肤设置 (19) 1.1.12墨盒信息维护 (20) 1.1.13系统参数设置 (21) 1.2预警管理 (23) 1.2.1预警启用设置 (23) 1.2.2预警规则设置 (24) 1.2.3消息发送管理 (26) 1.2.4消息发送查询 (27) 1.3委托打印 (28) 1.3.1委托打印申请 (28) 1.3.2受托信息查询 (30) 1.3.3委托打印查询 (31) 1.4数据中心 (32) 1.4.1数据连接配置 (32) 1.4.2同步方案配置 (34) 1.4.3同步频率设置 (36) 1.4.4手工同步 (37) 1.4.5同步日志查询 (39) 1.5批量打印 (40) 1.5.1打印权限 (40) 1.5.2 报表打印 (41) 1.6日志管理 (45)

ARM9嵌入式复习总结

ARM9嵌入式复习 第一章 1.嵌入式微处理器的分类。 a)什么是嵌入式微处理器? 1.嵌入式微处理器是嵌入式系统硬件层的核心,嵌入式微处理器将通用CPU中许多 由板卡完成的任务集成到芯片内部,从而有利于系统设计趋于小型化、高效率和高可靠性。嵌入式微处理器大多工作在为特定用户群所专门设计的系统中。 2.嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构,指令 系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令集系统CISC(Complex Instruction Set Computer, CISC)。 b) 嵌入式微处理器分类 1.按照系列分:ARM系列、MIPS系列、PowerPC系列。 2.按照指令复杂程度分:CISC和RISC两类 2.微处理器划分: a)嵌入式微控制器 b)嵌入式微处理器 c)DSP处理器 d)嵌入式片上系统 e)多核处理器 3.嵌入式操作系统(EOS)的特性 EOS除具备了一般操作系统最基本的任务调度、同步机制、中断处理、文件处理等功能外,还具有如下特点:强实时性;支持开放性和可伸缩性的体系结构,具有可裁减性;提供统一的设备驱动接口;提供操作方便、简单、友好的图形GUI和图形界面;支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,提供强大的网络功能。 第二章 1.ARM7TDMI命名 2.3级流水线与总线架构

三级流水线: 流水线使用3个阶段,因此指令分为3个阶段执行 1.取指:从程序存储器中读取指令,放入流水线中 2.译码:操作码和操作数被译码,决定执行什么功能,为下一个始终周期准备数据路 径所需要的控制信号。 3.执行:执行已译码的指令 注:程序计数器(PC)指向被取指的指令,而不是指向正在执行的指令 在正常操作的过程中,在执行一条指令的同时对下一条指令进行译码,并将第三条指令从存储器中取出 3.ARM的两种状态与7种工作模式 a)两种状态。 i.ARM状态:32位,这种状态下执行的是字方式的ARM指令; ii.Thumb状态:16位,这种状态下执行半字方式的Thumb指令。 注:两个状态之间的切换并不影响处理器模式或寄存器内容,可以使用BX指令切换两种状态.状态寄存器CPSR的T位反应了处理器运行不同指令的当前状态. b)7种工作模式。

关于远程终端打印机的使用技巧

关于远程终端打印机的使用技巧 打印机是现代化办公必不可少的设备,因而如何高效而又经济地使用打印机是用户们普遍关心的问题。下面系统之家提供远程终端打印机的使用的技巧与方法,虽然没有多少秘密可言,但是如果能正确地执行它,相信一定会提高你的工作效率的。 操作步骤: 在客户机上安装打印机驱动。 远程桌面连接到服务器,在服务器端也安装该型号的打印机驱动,并设置好打印样式。 通过ERP 自己的远程程序(其实用的就是windows terminal server TCP3389 端口)连接到ERP服务器数据库,打印表单时选择这个打印机即可。 参考说明: 远程桌面使用本地打印机 A方案:从远程会话打印到本地打印机 打印机重定向将打印作业从终端服务器或“远程桌面”计算机路由到本地计算机(也称为“客户端计算机”)连接的打印机。访问本地打印机有两种方式:自动的打印机重定向和手动的打印机重定向。当在远程计算机上运行的Windows 版本中没有本地打印机所需要的驱动程序时,使用手动重定向。 自动打印机重定向 当本地打印机使用安装在服务器上的驱动程序时,打印机自动重定向。当登录到终端服务器上的会话,或运行Windows Professional 或Server 和“远程桌面”的计算机时,将自动检测网络打印机以及客户端(本地)计算机上安装的所有打印机,并在服务器上创建本地队列。该服务器可以使用默认打印机的客户端打印机设置和一些属性(例如双面打印)。 当您断开连接或结束会话时,打印机队列将被删除,且不完整或待打印作业将丢失。有关客户端的本地打印机和设置的信息都保存在客户端计算机上。在以后登录时,使用存储在客户端计算机上的信息创建打印机队列。 如果在该服务器上找不到打印机驱动程序,则在日志中记录事件,而且不创建客户端打印机。为使打印机可用,必须在远程计算机上手动安装驱动程序。 注意 远程计算机上运行的程序可以使用重定向打印机。重定向的打印机显示在控制面板的“打印机和传真”文件夹中,并且以如下格式命名:客户端打印机名称(来源于客户机名称)。 断开连接或注销会话时,打印队列将被删除,而且尚未完成或挂起的打印作业将被取消。 手动打印机重定向 虽然不支持手动重定向通过USB 端口连接的打印机,但可手动重定向连接到客户端(本地)计算机上的LPT 和COM 端口的打印机。 要手动重定向客户端打印机,请与管理员联系并提供计算机的名称(或对基于Windows 的终端则提供IP 地址)。客户端必须在手动重定向期间连接到远程计算机。 在初次进行手动重定向之后,打印机将在以后的登录过程中自动重定向 B方案:远程桌面功能基于终端服务技术。 在使用“远程桌面”时,您可以从任何运行Windows 的其他客户机上运行基于Windows XP Professional 的远程计算机上的程序。这时,您可以从几乎任何远程连接中访问到您的基于Windows XP Professional 的桌面,此连接提供了对程序、文件和网络资源的安全访问。 当您从基于win xp的客户机使用“远程桌面”时,许多客户机资源,如文件和打印机,都可供远程桌面连接使用。您可以将打印作业从远程的Windows XP 桌面定向到与本地计算机连接的打印机。当您让客户机登录到远程计算机时,本地打印机就会被检测到,并会在远程计算机上安装适当的打印机驱动程序。 如要使本地打印机可供在远程桌面会话中使用,请执行以下操作: 1. 单击开始,依次指向所有程序、附件、通讯,然后单击远程桌面连接。

自助办税终端操作指引(一体机)

深圳市国家税务局 自助办税终端操作指引(一体机) 一、引言 为进一步优化办税环境,提高办税效率及服务水平,方便纳税人办税,我局在全市推广自助办税终端(ARM)设备,为纳税人提供自助办税服务。为使您更好的使用自助办税终端,请仔细阅读并保留本须知。 二、自助服务业务范围

三、使用步骤 1.选择终端登录方式:“领购簿登录”、“输入税号登录”、“条码扫描登录”; 2.选择“领购簿登录”时,在ARM机右边中间的磁条卡阅读器上刷发票领购簿,读 出您的税号信息后点击“确定”按钮; 3.选择“输入税号登录”时,通过ARM机操作界面上的软键盘输入您的纳税人识别 号信息,点击“确定”按钮; 4.选择“条码扫描登录”时,将条型码放在条码阅读区,系统自动识别出纳税人识别 号后,点击“确定”按钮; 5.根据语音提示输入8位机器操作密码;系统初始密码为税务登记证上的“国税编 码”。纳税人可点击“修改密码”按钮,对初始密码进行修改; 6.选择需要办理的业务类型,根据界面和语音提示进行相应的操作。 7.按提示完成操作后,取走并保留打印凭证,点击“退出”按钮。临走时注意带好税 控IC卡、税控盘、发票领购簿等随身物品。 四、业务功能操作流程 (一)税控IC卡报税 1.纳税人先通过外网申报本期税款,并在公司执行IC卡抄税,将开票数据写入IC 卡内。 2.在自助终端上进行IC卡报税操作,流程如下: (1)选择“领购簿登录”、“输入税号登录”或“条码扫描登录”方式; (2)选择“领购簿登录”时,在ARM机右边中间的磁条卡阅读器上刷发票领购簿, 读出您的税号信息后点击“确定”按钮; (3)选择“输入税号登录”时,通过ARM机操作界面上的软键盘输入您的纳税人 识别号信息,点击“确定”按钮; (4)选择“条码扫描登录”时,将条型码放在条码阅读区,系统自动识别出纳税人 识别号后,点击“确定”按钮; (5)根据语音提示输入8位机器操作密码;系统初始密码为税务登记证上的“国税

ARM9上的嵌入式Linux系统移植

《自动化技术与应用》2009年第28卷第6期 Techniques of Automation & Applications | 43 1 引言 嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,是对功能、可靠性、成本、功耗有严格要求的专用计算机系统。它一般由以下几部分组成: 嵌入式微处理器、外围硬件设备、嵌入式操作系统、及特定的应用程序。 当前,人类进入信息爆炸的时代,各类信息极度丰富,数字信息技术和网络技术的高速发展,只有借助于各种计算机,才能够对各类信息进行处理,它们已不再局限于以前的PC,而是由形态各异、性能千差万别的嵌入式系统来完成。而嵌入式操作系统主要有:嵌入式Linux 、WindowsCE 、Vxworks 、uC/OS-II 等[1]。本文主要研究嵌入式Linux 在嵌入式系统中的应用。 2 嵌入式Linux 操作系统及特点 将Linux 应用于嵌入式环境,是基于其具有以下特点:(1)Linux 操作系统是层次结构,并且内核源代码完全开放。不同领域和不同层次的用户可以根据自己应用的需要,对内核进行修改,能够低成本的开发出满足自己需要的嵌入式系统。(2)其具有强大的网络支持功能。Linux 诞生于因特网时代,并具有 ARM9上的嵌入式Linux 系统移植 邹颖婷,李绍荣 (电子科技大学光电信息学院,四川 成都 610054) 摘 要:Linux 操作系统在各个嵌入式领域有着越来越广泛的应用。主要研究了在ARM9体系结构上,嵌入式Linux 系统的移植。介 绍了嵌入式Linux 操作系统、移植目标平台SBC2410、及Linux 内核源代码的目录结构。然后详细讲述了在SBC2410硬件平台上实现Uboot 移植的过程,及概要介绍了Linux 操作系统内核移植的过程。最后将嵌入式Linux 系统成功移植上SBC2410平台。 关键词:ARM9;嵌入式Linux;Uboot 移植;内核移植 中图分类号:TP311.54 文献标识码:B 文章编号:1003-7241(2009)06-0043-03 Transplant of the Linux System on ARM9 ZOU Ying-ting, LI Shao-rong ( School of Opto-Electronic Information, University of Electronic Science and Technology of China, Chengdu 610054 China )Abstract: Linux OS has been more and more widely applied in many embedded areas. This paper introduces the transplantation of the Embedded Linux System on the ARM9. The Embedded Linux OS, the SBC2410 board, and the directory structure of the Linux kernel are introduced. The transplant process of the Uboot and of the Linux kernel are also discussed. Key words: ARM9; embedded Linux; transplantation of Uboot; transplantation of the Linux kernel 收稿日期:2009-01-04 Unix 的特性,这保证了它支持所有标准因特网协议,并且可以利用Linux 的网络协议栈,将其开发成为嵌入式的TCP/IP 网络协议栈。此外,Linux 还支持ext2、fat16、fat32、romfs 等文件系统,为嵌入式系统应用开发打下了很好的基础。(3)Linux 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。而且,Linux 也符合IEEE POSIX.1标准,使应用程序具有较好的可移植性[2]。 3 SBC2410硬件平台介绍 SBC2410是一款基于三星公司ARM9处理器S3C2410A,支持ARM-Linux 、WindowsCE 等操作系统的嵌入式硬件平台。平台的主要硬件资源有:一片64M SDRAM,一片64M Nand Flash,一片1M Nor Flash,一个串口 COM0,一个USB Host A 型接口,一个USB Slave B 型接口,一个标准JTAG 接口,等等。平台支持Linux2.4.18内核版本。 4 嵌入式Linux 系统移植 移植主要包括引导加载程序Uboot 的移植和Linux2.4.18内 计算机应用 Computer Applications

相关文档
最新文档