您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 基于Linux内核的嵌入式串口通讯程序设计
基于Linux内核的嵌入式串口通讯程序设计P基于Linux内核的嵌入式串口通讯程序设计BR摘 要BR本设计讨论了简易嵌入式Linux环境下的串口联网问题。BR在如今的工业控制领域,嵌入式设备通讯能力的优劣已经成为了一个尤为重要的评判标准,是否能够进行网络通信将是十分重要的。对于由于特殊要求而不能订制一些网络硬件的嵌入式设备来说,我们希望通过最为简单且经济的方式来解决网络问题,由此我们自然希望在尽力不改变设备原有资源的情况下给设备添加网络功能,并且将设备原先的功能所产生的冲突减到最小,选择具有普遍广泛应用的串口来实现串口联网将是十分具有现实意义的。BR本设计通过使用虚拟一些联网必备的网络硬件,通过串口来通信的方法来完成联网的实现,具体涉及到伪网络驱动程序和串口通信程序的开发。在不保证可靠通信和吞吐量的前提下,该设计能够实现简单的网络通信,包括Telnet等。/PP关键字:Linux环境,串口通讯,网络通讯,嵌入式BR BR4.串口网络通讯具体开发与实现BR4.1字符设备驱动程序BR用户空间的进程主要通过两种方式和内核空间模块打交道,一种是使用proc文件系统,另一种是使用字符设备。本文所描述的两个字符设备sendingdevice和receivingdevice事实上是内核空间和用户空间交换数据的缓存区,编写字符设备驱动实际上就是编写用户空间读写字符设备所需要的内核设备操作函数[15]。BR为了方便对设备编程,我们还需要一个字符设备管理的数据结构,这个数据结构是用来保存字符设备的一些基本状态信息。ssize_t是一个指向函数的指针,它的作用是为伪网络驱动程序提供写字符设备数据的系统调用接口。magic字段主要是标志设备类型号的,这里没有别的特殊意义;busy字段用来说明字符设备是否是处于忙状态,buffer指向内核缓存区,用来存放读写数据;mtu保存当前可发送的网络数据包最大传输单位,以字节为单位;lock的类型是自旋锁类型spinlock_t,它实际以一个整数域作为锁,在同一时刻对同一字符设备,只能有一个操作,所以使用内核锁机制保护防止数据污染;data_len是当前缓存区内保存的数据实际大小,以字节为单位;file是指向设备文件结构structfile的一个指针,其作用主要是定位设备的私有数据file->private_data。定义字符设备structed_deviceed[2],其中有一个定义ed[ED_REC_DEVICE]就是前面的recevingdevice,ed[ED_TX_DEVICE]就是相对应的sendingdevice。如果sendingdeviceED_TX_DEVICE没有数据,用户空间的read调用将被阻塞,并把进程信息放于rwait队列中。当有数据的时候,kernel_write()中的wake_up_interruptible()将唤醒等待进程。BR字符设备的操作及其相关函数调用过程如图4.1所示。BR BR图4.1 加载字符设备图BR当ed_device模块被加载的时候,eddev_module_init()调用register_chrdev()内核API注册ed_tx和ed_rec两个字符设备。这个函数定义在<linux/fs.h>。BR字符设备被注册成功后,内核把这两个字符设备加入到内核字符设备驱动表中。内核字符设备驱动表保留指向structfile_operations的一个数据指针。用户进程在调用设备读写操作时,无需自动添加进程,通过这个指针访问设备的操作函数,structfile_operations中的域大部分是指向函数的函数指针,指向用户自己编写的设备操作函数。BR注意到Linux2.4.x和Linux2.2.x内核中定义的structfile_operations是不一样的。device_read()、device_write()、device_ioctl()、device_open()、device_release()就是需要用户自己定义的函数操作了,这几个函数是最基本的操作,如果需要设备驱动程序完成更复杂的任务,还必须编写其他structfile_operations中定义的操作。eddev_module_init()除了注册设备及其操作外,它还有初始化字符设备结构structed_device,分配内核缓存区所需要的空间的作用。在内核空间,分配内存空间的API函数是kmalloc()。BR下面介绍一下字符设备的主要操作例程device_open()、device_release()、device_read()、devie_write()。字符设备文件操作结构ed_ops中定义的指向以上函数的函数指针的原形。BR操作intdevice_open(structinode*inode,structfile*file)是设备节点上的第一个操作,如果多个设备共享这一个操作函数,必须区分设备的设备号。我们使用inode->i_rdev>>8语句获得设备的主设备号,本文中的接收设备主设备号是200,发送设备号是201。每个字符设备的file>private_data指向打开设备时候使用的file结构,private_data实际上可以指向用户定义的任何结构,这里只指向我们自己定义的structed_device,用来保存字符设备的一些基本信息,比如设备名、内核缓存区等。BR/P/p如何保证政府网站的平安运转,必需惹起各个平安厂家的高度注重。brbr“依据安启华的监测,每天监测到的攻击窜改文件的比例为万分之93.8,接近1%,而其他同类效劳每天监测到的攻击窜改事情比例仅为万分之2.6。”安启华(Anchiva)中国区总经理李松在近期举行的媒体沟通会上表示,随着政府开放网站数量的日益添加,相应的网站受攻击的状况也越来越多,其中以网站挂马和网站窜改为主的攻击事情日益攀升。政府网站的平安性,必需惹起有关部门以及平安厂商的高度注重。br李松以为,从政府现有网络防护架构来看,目前政府网络都部署了基于端口、IP、MAC,甚至基于TCP会话停止网络访问控制的防火墙和基于数据包有效负载停止攻击检测进攻的IPS产品,但缺乏针对Web交互内容的过滤防护产品。这也是为什么网络中部署了防火墙、IPS等产品,Web站点还是频频被攻击的缘由。br鉴于此,李松表示,政府确实很需求Web运用平安网关(简称WAF)来维护网站的平安,而且,政府网站对WAF还有自身的细化需求,例如要求设备免维护、自效劳;能对网站停止减速;能防止网页被窜改。与国外的WAF产品相比,国际产品可以更好地满足用户需求。br为了掌握这一市场,2010年年底,安启华末尾思索做政府行业的业务,并于往年年终专门成立了纯内资的公司——安信华。李松还表示,安启华也在加大对政府行业的技术投入,最近,安启华为进一步处置政府网站的平安防护效果,还为政府行业重点推出了10M带宽的处置方案,网站卫士——安信华S60。和安启华以往的基于WAF产品的企业级市场处置方案不同的是,政府网站平安卫士除了WAF产品之外,还涵盖了更多为政府行业提供的效劳内容,比如三年的网站监控及挂马通知效劳、网站的破绽扫描效劳、网页静态页面防窜改,甚至网站减速效劳等。br而在这些效劳中,一些重量重、技术投入大的效劳,安启华却是收费为政府行业用户提供的。李松举例说,安启华的政府网站平安监测中心每周会对全中国的2万多个政府网站停止监控,并发布出被黑、被挂马的网站(依照地域散布停止公告),运用户了解自己网站的各种访问行为,最终做到片面提升政府网站的信誉度,让用户更担忧肠访问政府网站。br/pp/pp/p摘要:双语教学是一种有效的教学手段,本文对“B/S结构程序设计”课程进行双语教学的必要性、目的、教材选择、课堂教学以及实验教学等进行了探索,在提高学生的专业基础知识的同时,提高学生使用外语工具获取专业知识的能力和了解国外新技术的能力。br关键词br本文来自:计算机毕业网:B/S结构;双语教学;课堂教学brbr1开展双语教学的必要性brbr2001年8月,国家教育部在《关于加强高等学校本科教学提高教学质量的若干意见》中提出了加强大学本科教学的12项措施。其中要求各高校在三年内开始5%~10%的双语课程,并引进原版教材和提高师资水平。在2004年2月10日发布《2003-2010年教育振兴行动计划》,为了落实这个计划,在其后发布《关于进一步加强高等学校本科教学工作的若干意见》中再次提出要加强外语教学改革,要提高双语教学课程的质量,继续扩大双语教学课程的数量。推进双语教学能够加快教学内容和教学方法的改革,更好利用和借鉴国外先进的教学理念和教学方式。br笔者在进行“B/S结构程序设计”课程教学实践过程中,更加感受到双语教学的必要性,主要有以下几点:br(1)课堂教学学时有限,但知识却在快速膨胀和更新,一些老的知识也并没有过时,一直在完善提高,如ASP.NET的服务器端控件出现并没有让HTML技术过时。JavaEE体系中又出现JSF,EL和MVC等知识,这样把老知识和新知识加一起,教学内容也越来越多。由于教学内容过多,然而这些内容的确很重要,使得课堂上一般只能对这些知识进行引导。由于一些先进的技术最先体现都是外语形式,授人以鱼不如授人以渔,如果没有使用外语获取知识的能力,将会严重制约这些学生的进一步发展。br(2)大部分本科生毕业去向是到公司工作,而越来越多的公司需要进行全球化合作,如日本等国家许多的公司将系统开发外包到苏州南京等地的中国公司进行开发,再加上很多毕业生毕业后需要到外资公司工作,在这些学生就业的时候,接收公司不得不对他们的外语以及一些外语相关的技术进行大量的培训。如果能够在大学期间进行双语教学,打下良好的基础,将会促进学生的就业竞争力,更好的满足企业需要参与国际合作的需求。br(3)一些国外教材在引进成中文版本时常常要滞后一年以上,这对于一些传统课程也许问题较小,但对于竞争激烈的信息行业,这种速度常常难以让人忍受,也容易造成刚学会的知识就面临被淘汰的危险。br(4)一些技术翻译成中文以后,不同的译者将同一个名词翻译成不同的汉语,这就给学生学习造成迷惑,所以在专业词汇上加强外语素养是绝对必要的。不了解专业外语词汇,也给外文信息搜索带来很大困难。br(5)一些国外网上教程质量很好,很多都是一些国外专家用外语讲授,如果我们的学生不能有效利用,将是很大损失,阻碍学生的发展。brbr2开展双语教学的目标与教材选用brbr2.1课程教学目标的确定br由于双语教学的特殊性,使得教学目标的确定更加重要。首先双语教学不同于专业外语教育,尽管双语教学与专业外语教学都是以两种语言进行,但双语教学是专业课,其目的主要是讲授专业的基本知识和介绍国际前沿的发展,在使用外语中让学生掌握相应的专业知识,同时掌握一些专业词汇与专业表达方法等,提高学生的听说读写能力。而专业外语是外语教学,主要是借助专业文献来讲授外语语法、专业词汇和翻译技巧等。所以有一些教师提出为弥补专业教师外语能力欠缺,需要对外语教师进行少量专业培训,然后让这些外语教师进行双语教学。对这个看法我持反对意见,正确的做法应该是加强专业教师外语表达能力才更加符合双语教学的特征。br根据双语教学的专业性和双语讲授的特点,笔者将“B/S结构系统开发”课程的教学目标定为:br1)通过“B/S结构系统开发”课程的教学,使学生掌握B/S结构系统开发的基本技术,如:HTML,CSS,JavaScript,JSP,Servlet,JDBC,EJB等。br2)让学生了解一些系统架构的最新技术和进展,如目前我们适量介绍WebService,SOA等一些概念,引导学生自
本文标题:基于Linux内核的嵌入式串口通讯程序设计
链接地址:https://www.777doc.com/doc-2570393 .html