文章分类 -  Linux设备驱动

摘要:SPI接口的全称是"Serial Peripheral Interface",意为串行外围接口,是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在EEPROM, FLASH,实时时钟,AD转换器,还有数字信号处理器和数字信号解码器之间。SPI接口是在CPU和外围低速器件之间进行同步串行数据传输,在主器件的移位脉冲下,数据按位传输,高位在前,地位在后,为全双工通信,数据传输速度总体来说比I2C总线要快,速度可达到几Mbps。SPI接口是以主从方式工作的,这种模式通常有一个主器件和一个或多个从器件,其接口包括以下四种信号:(1)MOSI – 主器 阅读全文
posted @ 2013-12-14 09:33 general001 阅读(400) 评论(0) 推荐(0)
摘要:序言设备驱动程序的一个基本功能就是管理和控制设备,同时为用户应用程序提供管理和控制设备的接口。我们前面的“Hello World”驱动程序已经可以提供读写功能了,在这里我们将扩展我们的驱动以支持设备控制接口,在Linux中这个接口是通过ioctl函数来实现的。设备控制接口(ioctl 函数)回想一下我们在字符设备驱动中介绍的struct file_operations 结构,这里我们将介绍一个新的方法:int (*ioctl) (struct inode *, struct file *, unsigned int, unsigned long);这是驱动程序设备控制接口函数(ioctl函数) 阅读全文
posted @ 2013-08-19 13:05 general001 阅读(331) 评论(0) 推荐(0)
摘要:RS485驱动修改16C550驱动,以便实现RS485通讯。修改8250.c文件,增加RS485的方向控制代码即可。在将接收字符的函数receive_chars增加方向切换为接收的代码:1297 static void1298 receive_chars(struct uart_8250_port *up, unsigned int *status)1299 {1300 struct tty_struct *tty = up->port.info->port.tty;1301 unsigned char ch, lsr = *status;1302 int max_count = 阅读全文
posted @ 2012-05-23 11:44 general001 阅读(2023) 评论(0) 推荐(0)
摘要:作者:刘洪涛,华清远见嵌入式学院讲师。一、概述基于子系统去开发驱动程序已经是linux内核中普遍的做法了。前面写过基于I2C子系统的驱动开发。本文介绍另外一种常用总线SPI的开发方法。SPI子系统的开发和I2C有很多的相似性,大家可以对比学习。本主题分为两个部分叙述,第一部分介绍基于SPI子系统开发的理论框架;第二部分以华清远见教学平台FS_S5PC100上的M25P10芯片为例(内核版本2.6.29),编写一个SPI驱动程序实例。二、SPI总线协议简介介绍驱动开发前,需要先熟悉下SPI通讯协议中的几个关键的地方,后面在编写驱动时,需要考虑相关因素。SPI总线由MISO(串行数据输入)、MOS 阅读全文
posted @ 2012-04-25 17:29 general001
摘要:一 串口控制 通常我们对于视频服务器、录像机、切换台等直接播出、切换控制主要使用串口进行,主要使用到RS-232、RS-422与RS-485三种接口控制。下面就串口的接口标准以及使用和外部插件和电缆进行探讨。RS指“推荐标准” RS-232、RS-422与RS-485标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。例如:视频服务器都带有多个RS422串行通讯接口,每个接口均可通过RS422通讯线由外部计算机控制实现记录与播放。 视频服务器除提供各种控制硬件接口外,还提供协议接口,如RS422接口除支持RS422的Profile协议外,还支持 阅读全文
posted @ 2012-03-20 16:12 general001 阅读(7939) 评论(0) 推荐(0)
摘要:Linux内核对SPI的支持什么是SPI? “串行外围接口”是一个同步的四线制串行线,用于连接微控制器和传感器、存储器及外围设备。三条信号线持有时钟信号(SCLK,经常在10MHz左右)和 并行数据线带有“主出,从进(MOSI)”或是“主进,从出(MISO)”信号。数据交换的时候有四种时钟模式,模式0和模式3是最经常使用的。每个时钟 周期将会传递数据进和出。如果没有数据传递的话,时钟将不会循环。SPI主设备使用“片选”线来使一个给定的SPI从设备工作,所以那三条信号线可能并行地连接若干个芯片。所有的SPI从设备都支持片选。一些设备有其它信号,通常包括给主设备的中断。不像例如USB、SMBUS. 阅读全文
posted @ 2012-03-20 15:47 general001
摘要:Links: blog.csdn.net/lanmanck/archive/2009/08/18/4459699.aspx基于atmel的spi模型,大家可以先看下这篇文章的分析:http://blog.chinaunix.net/u3/96265/showart_1925533.html【转帖注明出处】http://blog.csdn.net/lanmanck但是有的细节没有提到,我补充一下,不对请指出:1、驱动中有总线和设备的概念。spi控制器就是总线(spi总线),对应atmel_spi.cspi控制器上外接的芯片,比如串行flash、can收发器、时钟芯片等,就是设备。这就涉及到设备. 阅读全文
posted @ 2012-03-20 14:07 general001
摘要:拿到一个设备驱动,首先要看的是设备初始化函数。staticint__initmcp251x_init(void){intret;can_class=class_create(THIS_MODULE,"can");if(IS_ERR(can_class))returnPTR_ERR(can_class);ret=alloc_chrdev_region(&devid,0,CAN_DEV_MAX,DRIVER_NAME);if(retdriver.bus=&spi_bus_type;if(sdrv->probe)sdrv->driver.probe=s 阅读全文
posted @ 2012-03-13 14:35 general001
摘要:#include sbit int0 = P3^2;//-----------------------定义寻址的基址--------------------------------------------------------#define base_Adr 0x00 //-----------------------定义总线定时寄存器的值--------------------------------------------------------#define SJA_BTR0 0x00 //该值需要用户根据实际需要的波特率进行计算#define SJA_BTR1 0x16 //具体计算 阅读全文
posted @ 2012-02-08 16:00 general001
摘要:1引言 基于嵌入式系统设计的工业控制装置,在工业控制现场受到各种干扰,如电磁、粉尘、天气等对系统的正常运行造成很大的影响。在工业控制现场各个设备之间要经常交换、传输数据,需要一种抗干扰性强、稳定、传输速率快的现场总线进行通信。文章采用CAN总线,基于嵌入式系统32位的S3C44B0X微处理器,通过其SPI接口,MCP2510 CAN控制器扩展CAN总线;将嵌入式操作系统嵌入到S3C44B0X微处理器中,能实现多任务、友好图形用户界面;针对S3C44B0X微处理器没有内存管理单元MMU,采用uClinux嵌入式操作系统。这样在嵌入式系统中扩展CAN设备关键技术就是CAN设备在嵌入式操作系统下.. 阅读全文
posted @ 2012-02-08 15:00 general001
摘要:Linux USB驱动框架分析(一) 初次接触与OS相关的设备驱动编写,感觉还挺有意思的,为了不至于忘掉看过的东西,笔记跟总结当然不可缺,更何况我决定为嵌入式卖命了。好,言归正传,我说一说这段时间的收获,跟大家分享一下Linux的驱动开发。但这次只先针对Linux的USB子系统作分析,因为周五研讨老板催货。当然,还会顺带提一下其他的驱动程序写法。 事实上,Linux的设备驱动都遵循一个惯例——表征驱动程序(用driver更贴切一些,应该称为驱动器比较好吧)的结构体,结构体里面应该包含了驱动程序所需要的所有资源。用术语来说,就是这个驱动器对象所拥有的属性及成员。由于Linux的内核用c来编... 阅读全文
posted @ 2012-01-11 15:30 general001
摘要:OTG是On-The-Go的缩写,是近年发展起来的技术,2001年12月18日由USB Implementers Forum公布,主要应用于各种不同的设备或移动设备间的联接,进行数据交换。特别是PDA、移动电话、消费类设备。改变如数码照相机、摄像机、打印机等设备间多种不同制式连接器,多达7种制式的存储卡间数据交换的不便。1 、主机通信协议与对话请求协议 USB OTG标准在完全兼容USB2.0标准的基础上,增添了电源管理(节省功耗)功能,它允许设备既可作为主机,也可作为外设操作(两用OTG)。 OTG两用设备完全符合USB2.0标准,并可提供一定的主机检测能力,支持主机通令协议(HNP)和对. 阅读全文
posted @ 2012-01-05 16:09 general001 阅读(529) 评论(0) 推荐(0)
摘要:mmap功能描述:mmap将一个文件或者其它对象映射进内存。文件被映射到多个页上,如果文件的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。munmap执行相反的操作,删除特定地址区域的对象映射。基于文件的映射,在mmap和munmap执行过程的任何时刻,被映射文件的st_atime可能被更新。如果st_atime字段在前述的情况下没有得到更新,首次对映射区的第一个页索引时会更新该字段的值。用PROT_WRITE 和 MAP_SHARED标志建立起来的文件映射,其st_ctime 和 st_mtime在对映射区写入之后,但在msync()通过MS_SYNC 和 MS_ASYNC两个 阅读全文
posted @ 2011-12-23 15:06 general001 阅读(333) 评论(0) 推荐(0)