基于arm9和嵌入式linux的串口驱动开发

基于arm9和嵌入式linux的串口驱动开发

ID:33817599

大小:236.70 KB

页数:5页

时间:2019-02-28

基于arm9和嵌入式linux的串口驱动开发_第1页
基于arm9和嵌入式linux的串口驱动开发_第2页
基于arm9和嵌入式linux的串口驱动开发_第3页
基于arm9和嵌入式linux的串口驱动开发_第4页
基于arm9和嵌入式linux的串口驱动开发_第5页
资源描述:

《基于arm9和嵌入式linux的串口驱动开发》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、万方数据第8卷第3期2008年2月1671·1819(2008)3·0786—04科学技术与工程ScienceTechnologyandEngineeringV01.8No.3Feb.2008@2008Sci.Tech.Engng.基于ARM9和嵌入式Linux的串口驱动开发耿杰恒王竹林贾春宁1(军械工程学院四系,石家庄050003;南京军代局上海代表室1,上海200233)摘要介绍了嵌入式LimLx下驱动开发的一般模式,并基于微处理器芯片$3C2410,详细分析了串口驱动的开发方法,给出了设计实例,对嵌入式系统的研究和开发有一定的借鉴意义。关键词嵌入式系统串口通信驱动程序中

2、图法分类号TP316.2;文献标志码A随着计算机技术的飞速发展,嵌入式系统已成为继PC和Intemet之后,rI'界新的技术热点。嵌入式系统体积小、功能强、开发灵活方便,在工业控制、通信、航空航天、军事技术等领域取得了广泛的应用。在嵌入式系统的开发中,串口通讯的设计是一个非常重要的部分,虽然通用的串口驱动可以满足很多系统的需要,但在一些工业控制中,对串口信号的数据格式,波特率等都有着严格的限制,这就要求针对系统需求对串口进行重新开发。本文就基于ARM9芯片$3C2410和Linux系统,以某设备特殊的通讯方式为例,详细分析串口驱动的开发方法,实现设备的通讯。1Linux下驱动

3、开发简介在嵌入式Linux系统中,由于内核的保护机制,用户一般不能直接访问硬件,而是要通过调用驱动程序来实现对硬件的控制。进行嵌入式系统的开发,很大的工作量是为各种设备编写驱动程序。设备驱动是介于硬件和操作系统之间的软件接口,主要功能包括:探测和初始化设备;从设备接2007年10月24日收到总装备部装备预研项目基金资助第一作者简介:耿杰恒(1982一),男,河北邢台人,硕士研究生,研究方向:检测技术与自动化装置。E-msil:#hv00l@126.伽。收数据并提交给内核;从内核接收数据送到设备;检测和处理设备错误。Linux下设备驱动的开发就是编写各种函数实现设备的注册、初始

4、化、IO操作、卸载等功能。其一般模式如下。//定义主次设备号intUARTMAJOR=125;intUARTMINOR=2;∥文件系统入口定义sta'uetfile_operationsuart一60ps={}//编写入口函数,实现设备控制staticintuart_open(structinode{inode,sttuctfile·mp)}∥编写设备初始化和卸载函数intinituartinit(void){}voidexitum't_deanup(而d){}//初始化和卸载函数调用module_init(uart_init);voidmexituart_cleanup(v

5、oid);2$3C2410芯片串口的控制$3C2410提供了三个通用异步串行通信接口,万方数据3期耿杰恒,等:基于ARM9和嵌入式Linux的串口驱动开发每个串口都有一个波特率发生器、接收寄存器、发送寄存器和一个控制单元,另外,还有两个16字节PeripheralBUS的FIFO寄存器作为发送和接收的缓冲装置,其结构框图如图1所示。图1$3C2410串口结构框图在S3C2410中,对串口的控制是通过设置相应的控制寄存器来实现的,其常用的寄存器主要有以下几个:(1)ULCONn寄存器:主要用来设置串口工作模式,包括数据位长度、停止位个数,以及数据校验方式等。$3C2410支持四

6、种校验方式,分别是奇校验、偶校验、MARK校验和SPACE校验。(2)UCONn寄存器:该寄存器涉及到中断模式控制、DMA模式控制,以及时钟的选择等。(3)UTRSTATn寄存器:串口的状态寄存器,用于指示串口是否接收或发送完毕。(4)UTXHn和URXHn寄存器:发送和接收寄存器。(5)UBRDIVn寄存器:波特率设置寄存器,用于对时钟分频,产生需要的波特率。其值通过如下计算确定:UBRDIVn=(int)(PCLK/(bps木16))一1或者UBRDIVn=(int)(UCLK/(bps球16))一1其中PCLK或UCLK是选择的时钟,bps是需要的波特率。3串口驱动设计

7、及应用实例下面通过一个设计实例来详细分析串口驱动的设计方法。某设备通过串口实现对下位机的控制,其控制指令由四个字节的串口数据组成,数据格式为8位数据位、一位停止位、一位校验位,其中第一个数据为MARK校验,后三个数据为SPACE校验,串口的波特率为77.2kb/s。对于如此波特率和校验方式都不常用的串口通讯方式,通用的串口驱动就无能为力了,这就要求针对硬件芯片的特点重新编写驱动程序。根据系统要求,使用串口1实现该串口通信的功能,其具体的编程实现如下t(1)在初始化函数中,注册串口设备。ret=regis

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。