SylixOS驱动开发
文章平均质量分 73
SylixOS驱动开发相关内容
ScilogyHunter
一码流年雨疏疏,莫道E人岁月蹴。。。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MIL-STD-1553B Bus Overview
1. OverviewThe MIL-STD-1553B bus is a differential serial bus used in military and space equipment. It comprises multiple redundant bus connections and communicates at 1Mbps.The bus has a single active BC and up to 31 RTs. The BC manages all data transfe原创 2020-11-20 20:15:11 · 447 阅读 · 0 评论 -
MIL-STD-1553B特性必知必会
1553B是**MIL-STD-1553B** 的简称,MIL-STD-1553B是一种指令/响应式串行总线标准。该总线标准由美国国防部于 1973 年制定并颁布,全称为**飞机内时分制指令/响应式复用数据总线**。原创 2024-07-25 16:37:39 · 3534 阅读 · 0 评论 -
1553B总线常见问题及解答
1、1553B总线的耦合方式有哪些? 有直接耦合和变压器耦合两种方式。2、1553B各种耦合方式的总线有效距离是多少?扩展总线的有效距离又是多少? a. 直接耦合方式的1553B总线有效距离可达30.5厘米,变压器耦合方式的1553B总线有效距离可达6.1米。 b. 通过耦合器设备扩展总线,有效距离可达100米。3、1553B总线的传输速度是多少?主要应用什么场合? 1553B总线的传输速率是1Mbit/s。 a. 信息需要在总线终端之间通过数字通信通道传输; b. 所有总线终端原创 2020-11-20 16:03:46 · 4745 阅读 · 0 评论 -
1553B总线基础知识
一、什么是1553B总线1553B总线是MIL-STD-1553总线的简称,其中B就是BUS,MIL-STD-1553B总线是飞机内部时分制命令/响应式多路复用数据总线。1553B数据总线标准是20世纪70年代由美国公布的一种串行多路数据总线标准。1553B总线能挂31个远置终端,1553B总线采用指令/响应型通信协议,它有三种终端类型:总线控制器(BC)、远程终端(RT)和总线监视器(BM);信息格式有BC到RT、RT到BC、RT到RT、广播方式和系统控制方式;传输媒介为屏蔽双绞线,1553B总线耦合方原创 2020-09-07 11:14:17 · 20020 阅读 · 5 评论 -
SylixOS下的SPI子系统
SPI体系结构SylixOS的SPI体系结构和I2C类似,也分为3个组成部分。(1)SPI核心SPI核心提供了SPI总线驱动和设备驱动的注册、注销方法,SPI通信方法,适配器无关的代码等。每个SPI从设备驱动都能找到和它相连的SPI总线适配器。(2)SPI总线驱动SPI总线驱动主要包括SPI适配器结构lw_spi_adapter和SPI适配器的通信方法数据结构。(3)SPI设备驱动S...原创 2020-04-19 12:27:21 · 663 阅读 · 0 评论 -
SPI总线基础知识
概念SPI(Serial Peripheral Interface),串行外设接口,是Motorola提出的一种高速的、全双工、同步的通信总线。SPI接口主要用于MCU与外围设备的通信,外围设备包括EEPROM、FLASH、实时时钟、AD转换器、数字信号处理器和数字信号解码器等。 它以主从方式工作,通常有一个主设备和一个或多个从设备。物理接口SPI在芯片的管脚上只占用四根线,分别是MOSI(...原创 2020-04-19 11:24:47 · 2640 阅读 · 0 评论 -
sylixos下的SPI子设备AT45DB081D测试例程
AT45DB081D是一款SPI接口的FLASH芯片,驱动属于SPI子设备,通过借助SPI总线适配器来访问它的寄存器和空间。这里是一个芯片测试例程。/************************************************************************************************************* ...原创 2020-04-19 13:06:04 · 1071 阅读 · 0 评论 -
sylixos下的SPI flash设备驱动代码分析
一个具体的SPI设备驱动以lw_spi_device结构体的形式进行组织,用于将设备挂接于SPI总线,组织好了后,再完成设备本身所属类型的驱动。下面以SPI flash为例介绍SPI设备驱动的实现。SPI flash是一个挂载在SPI总线上的设备,它依靠SPI总线的传输函数传递数据。所以在SPI flash设备创建时,要调用API_SpiDeviceCreate函数将其挂载在一个指定的SPI总线...原创 2020-04-19 12:51:47 · 1075 阅读 · 4 评论 -
sylixos下的imxRT1050的SPI总线驱动
SPI驱动分总线驱动及适配器驱动,和SPI子设备驱动。下面是sylixos下的imxRT1050的SPI总线驱动源码./************************************************************************************************************* ...原创 2020-04-19 12:56:34 · 1014 阅读 · 0 评论 -
sylixos下spi总线驱动框架
下面以imx6q处理器自带spi总线驱动为例,讲解sylixos下spi总线驱动框架。1. 入口位置要为系统添加一个spi总线,可以在bsp工程中,直接集成到系统镜像中,也可以通过内核模块动态添加至系统。如果是集成到系统镜像中,则代码应位于bspInit.c文件的halBusInit函数中开始调用。如果是通过内核模块实现,则自然是在module_init函数中调用。2. 初始化 spi 组件库spi总线驱动需要调用的第一个函数应当是系统api函数 API_SpiLibInit,该函数初始化 spi原创 2020-08-11 19:50:56 · 1172 阅读 · 7 评论 -
SPI适配器
SPI适配器每一条SPI总线对应一个SPI适配器。在内核中,每一个适配器提供了一个描述的结构,也定义了Adapter支持的操作。再通过SPI核心层将SPI设备与SPI适配器关联起来。SPI总线适配器相关信息位于“libsylixos/SylixOS/system/device/spi”下,其适配器创建原型如下:/************************************************************************************************原创 2020-08-07 21:08:27 · 692 阅读 · 0 评论 -
SylixOS下I2C 总线框架
SylixOS 的 I2C 体系结构分为 3 个组成部分。I2C 核心驱动程序I2C 核心提供 I2C 总线驱动和设备驱动的注册、注销方法,I2C 通信方法(即 Algorithm),具体适配器无关的代码以及探测设备、检测设备地址等。I2C 核心驱动程序可管理多个 I2C总线适配器(控制器)和多个 I2C 从设备。每个 I2C 从设备驱动都能找到和它相连的 I2C 总线适配器。I2C 总线驱...原创 2020-04-06 17:30:11 · 621 阅读 · 0 评论 -
I2C总线基础知识
I2C 总线I2C 的英文拼写是“Inter—Integrate Circuit”,即内置集成电路。I2C 是一种由 Philips 公司开发的两线式串行总线,用于连接微控制器及其外围设备。I2C 总线只有两根线分别为:时钟线 SCL(Serial Clock)和数据线 SDA(Serial Data)。总线空闲时,上拉电阻使 SDA 和SCL 线都保持高电平。I2C 总线上任意器件输出低电平都...原创 2020-04-06 17:21:05 · 4232 阅读 · 0 评论 -
SMBus基础知识
概念SMBus (System Management Bus,系统管理总线) 系统管理总线是1995年由Intel提出的,应用于移动PC和桌面PC系统中的低速率通讯。希望通过一条廉价并且功能强大的总线(由两条线组成),来控制主板上的设备并收集相应的信息。SMBus是一种二线制串行总线,1996年第一版规范开始商用。它大部分基于I2C总线规范。和 I2C一样,SMBus不需增加额外引脚,创建该总线主要是为了增加新的功能特性,但只工作在100kHz且专门面向智能电池管理应用。它工作在主/从模式:主器件提供时原创 2020-05-27 13:23:29 · 4365 阅读 · 0 评论 -
sylixos下的上s3c2440的I2C驱动实现源码
/************************************************************************************************************* 中国软件开源组织**** 嵌入式...原创 2020-04-06 17:55:33 · 580 阅读 · 0 评论 -
SylixOS下I2C总线适配器接口
I2C 总线适配器相关信息位于“libsylixos/SylixOS/system/device/i2c”下,其适配器创建函数原型如下:#include <SylixOS.h>INT API_I2cAdapterCreate (CPCHAR pcName, PLW_I2C_FUNCS pi2cfunc, ...原创 2020-04-06 17:49:17 · 674 阅读 · 0 评论 -
sylixos下i.mxRT1050的I2C总线驱动实现源码
/************************************************************************************************************* 中国软件开源组织**** 嵌入式...原创 2020-04-06 17:52:59 · 748 阅读 · 0 评论 -
SylixOS中现有GPIO设备体系缺陷
没有一个标准的GPIO序号宏定义规则,目前使用个人定义的一套方法。SylixOS中GPIO序号宏定义GPIO属性参数有好几套,没有统一为标准的一套。使得各层处理中往往需要添加参数转换操作。#define GPIO_FLAG_DIR_OUT 0x0000#define GPIO_FLAG_DIR_IN 0x0001#define GPIO_FLA...原创 2019-10-12 20:13:11 · 617 阅读 · 0 评论 -
SylixOS中的GPIO驱动接口
基本原理通过前面几篇的讲解,已说明SylixOS中的GPIO在应用层和驱动层如何调用,这一篇讲如何向系统增加GPIO设备。一个计算机系统内的GPIO都是呈组出现的,同一组内的GPIO特性基本相同,使用同一个驱动。像一般的SOC芯片,自身就会有一组GPIO做为片内外设存在,也可以通过PCI、I2C等其他总线外扩GPIO芯片或模块,这样就会增加一组或多组不同驱动的GPIO设备。SylixOS中将...原创 2019-09-03 19:10:13 · 734 阅读 · 0 评论 -
GPIO Drv接口的实现
GPIO Drv API的实现基于GPIO控制器对象,实现相对简单,主要包括数据有效性检查,数据管理,参数类型转换,调用GPIO控制器对象中的相应回调函数等。原创 2019-09-18 18:09:55 · 1315 阅读 · 0 评论 -
GPIO硬件特性
GPIO(General Purpose Input/Output)即通用输入输出端口,以下简称 GPIO。GPIO 可提供输入、输出或中断三类功能,是嵌入式领域最常见,最基础的输入输出设备。应用上GPIO作为输入可以检测按键,限位开关等的状态,作为输出可以控制LED,蜂鸣器,继电器等设备。GPIO 除了在应用层中使用外,其实更多的是在其他复杂驱动中调用。比如SD卡驱动中要使用一个GPIO来监测...原创 2019-09-18 21:00:04 · 3252 阅读 · 0 评论 -
sylixos下S3C2440的GPIO驱动源码
sylixos下S3C2440的GPIO驱动源码/************************************************************************************************************* 中国软件开源组织**** ...原创 2020-04-05 19:26:19 · 574 阅读 · 0 评论 -
GPIO设备文件的实现
基于UNIX一切皆文件的哲学,SylixOS中也会把GPIO抽象为设备文件,即/dev/gpiofd 目录下的数字编号的文件,应用层通过访问设备文件的方式即可操作GPIO。实现这些函数要用到的主要接口有:设备文件驱动接口GPIO Drv接口select接口中断系统接口注册驱动和设备/*************************************************...原创 2019-09-12 09:45:50 · 1033 阅读 · 0 评论 -
SylixOS下的GPIO驱动框架
SylixOS下的GPIO驱动框架GPIO是一个极为常用且标准化程度较高的设备,SylixOS为GPIO提供了一套完整的层次清晰的驱动框架。如下图所示:框架说明SylixOS中会把GPIO抽象为设备文件,应用层通过访问设备文件即可操作GPIO。除了按照文件的方式访问GPIO外,系统还封装了GpioFd接口,简化了应用层对GPIO的操作。SylixOS还提供了GpioDrv接口,不仅方...原创 2019-09-06 18:44:05 · 802 阅读 · 0 评论 -
在驱动层使用GPIO的中断功能
使用情景上一篇讲了在驱动层如何使用GPIO的API函数进行简单的GPIO输入和输出功能,这一篇讲如何在驱动层使用GPIO的中断功能。有些复杂驱动是要借助GPIO的中断功能来实现自身对系统的中断通知的。如下图所示的 FXOS8700CQ 三轴磁力计芯片的单元电路,除了要使用一路I2C接口与CPU通信外,还有 INT1,INT2两个中断脚用于向CPU发送中断信号,主动告知CPU检测到状态有变化。这两...原创 2019-09-02 17:25:32 · 4541 阅读 · 1 评论 -
gpiofd接口的实现
SylixOS中会把GPIO抽象为设备文件,应用层通过访问设备文件即可操作GPIO。除了按照文件的方式访问GPIO外,系统还封装了GpioFd接口,简化了应用层对GPIO的操作。这一篇来说明GpioFd接口是如何实现的,实现代码如下:/*********************************************************************************...原创 2019-09-11 09:28:03 · 811 阅读 · 0 评论 -
在驱动层使用GPIO的中断功能的简化接口
接口说明为了简化驱动层使用GPIO中断功能的复杂性,我将其封装成了两个接口,类似于系统提供的API标准接口,使用GPIO中断功能时直接请求一个中断模式GPIO即可,用完后再调用相应的释放函数。这两个函数封装了GPIO的中断处理接口、中断API函数和一些必要的流程及异常处理。如下面所示:/******************************************************...原创 2019-09-02 20:40:14 · 839 阅读 · 0 评论 -
通用GPIO测试工具
为了方便对GPIO驱动进行测试,特意开发了通用GPIO测试工具,该工具同时也可用于GPIO硬件测试和GPIO应用开发参考。简要说明命令行解析基于cmdParse模块,这个模块的功能和用法会单独说明。命令每次只针对一个GPIO进行操作。-id 选项指定了GPIO序号,选项参数可以是一个无符号整数,也可以是“gpio_port_pin”格式字符串(和SylixOS中GPIO序号宏定义中的格式...原创 2020-02-04 17:21:42 · 5091 阅读 · 0 评论 -
在驱动层使用GPIO
使用情景GPIO 除了在应用层中使用外,其实更多的是在其他复杂驱动中调用。比如SD卡驱动中要使用一个GPIO来监测卡的插入与拔出,网卡驱动中需要使用一个GPIO来控制phy芯片硬复位,某些情况需要用GPIO来模拟I2C总线等等。驱动中使用GPIO时,为了提高效率并不是调用GPIO设备文件,而是使用SylixOS提供的GPIO调用接口。GPIO API/********************...原创 2019-08-30 20:01:53 · 1045 阅读 · 1 评论 -
SylixOS中GPIO序号宏定义
在SylixOS中 为了统一管理和便于移植 GPIO 被统一编号为数字而不是电路上尝试说的某某端口。封装成的设备文件都在 /dev/gpiofd 目录下,文件名即对应的GPI编号,如" /dev/gpiofd/0"即为0号GPIO。应用和驱动中调用某GPIO也是直接使用其编号来索引,如:API_GpioSetValue(5,LOW);设置5号引脚为低电平。如果在应用程序中使用芯片的GPIO标...原创 2019-08-28 21:02:27 · 1168 阅读 · 1 评论 -
SylixOS下 i.MX RT1050的GPIO驱动实例
实例源码下面是 i.MX RT1050 的GPIO驱动实现源码:/************************************************************************************************************* 中国软件开源组织**** ...原创 2019-09-04 09:43:54 · 850 阅读 · 1 评论 -
在应用层使用GPIO
在应用层使用GPIOGPIO(General Purpose Input/Output)即通用输入输出端口,以下简称 I/O 端口。I/O 端口可提供输入、输出或中断三类功能,是嵌入式领域最常见,最基础的硬件设备。在介绍SylixOS中的GPIO驱动如何编写前,我们先来了解下应用层是如何调用GPIO的,要先会用之后才能更好的去开发驱动以及进行测试。对于应用层来说,GPIO就是/dev/gp...原创 2019-08-29 21:17:58 · 1791 阅读 · 1 评论 -
sylixos下imxrt1050串口驱动实现
/************************************************************************************************************* 中国软件开源组织**** 嵌入式...原创 2020-03-29 16:05:04 · 768 阅读 · 0 评论 -
485总线实践要点
概念485全名叫做EIA-485也叫做RS-485或者RS485,是隶属于OSI模型物理层的 电气特性规定为2线、半双工、平衡传输线多点通信的标准。是由电信行业协会(TIA)及电子工业联盟(EIA)联合发布的标准。实现此标准的数字通信网可以在有电子噪声的环境下进行长距离有效率的通信。在线性多点总线的配置下,可以在一个网络上有多个接收器。因此适用在工业环境中。485的通讯距离最远可以多少根据485 总线结构理论,在理想环境的前提下,485 总线传输距离最远可以达到1200 米。其条件是通讯线材优质达标原创 2021-01-13 09:16:28 · 5219 阅读 · 1 评论 -
串口驱动中使用FIFO
FIFO是什么?FIFO( First Input First Output) 简单说就是指先进先出。它是一种数据存储或传输模式,可以硬件实现也可以软件实现,大多数用来缓存数据,减少操作次数,提高传输效率。串口实现中其实在两处运用了FIFO。一处是串口控制器硬件内部可能会提供收发FIFO支持,一处是在驱动框架层提供了软件实现的数据收发FIFO。这里只介绍硬件FIFO的特性和用法。没有硬件FIFO的串口只有一个数据接收寄存器和一个数据发送寄存器(这两寄存器可能是同一地址,读时访问接收寄存器,写时访问发送原创 2020-07-04 21:02:46 · 10491 阅读 · 4 评论 -
通用uart测试工具
为了方便对UART驱动进行测试,特意开发了通用UART测试工具,该工具同时也可用于UART硬件测试和UART应用开发参考。简要说明命令行解析基于cmdParse模块,这个模块的功能和用法会单独说明。命令每次只针对一个UART端口进行操作。该命令运行后会创建3个执行线程,接收线程,反射线程和发送线程。-help 选项是个通用选项,会输出相应命令的选项列表。-info 选项用于打印命令默...原创 2020-02-17 18:12:45 · 2481 阅读 · 0 评论 -
串口应用的基本流程
串口简介串口是计算机领域最简单的通信接口,也是使用最广泛的通信接口。虽然现在PC主机上已经很少看到,但在嵌入式领域中通常是必备接口。在实际应用中,由于电气特性不同,串口有多种应用方式,如TTL电平、标准RS-232电平、RS-422差分电平等,但对软件编程基本没有影响。在UNIX下串口设备在操作系统中使用ttySn来表示,即串口是作为一个终端设备来管理的。之所以如此是因为在早期,用户接入一个...原创 2020-03-18 20:33:02 · 1818 阅读 · 0 评论 -
串口的4种电气标准
前言先阅读《Sylixos下的UART基础知识》了解串口的基本概念和特性。串口有4种电气标准,分别是TTL、 RS232 、RS422 和 RS485。这4种串口只在电气信号上有差别,在帧格式,传输逻辑和软件操作上基本都是一样的。在实际项目应用中会有些差别,本文详细描述这些差别和应用特点。需要说明一下,很多人经常把RS-232、RS-422、RS-485 误称为通讯协议,这是很不应该的,其实它们仅是关于UART通讯的一个机械和电气接口标准,顶多是网络协议中的物理层面。主要区别串口的4种电气标准比较原创 2020-07-05 13:23:38 · 12779 阅读 · 1 评论 -
串口驱动的3种实现方式
串口驱动的实现有三种方式:轮询、中断、DMA(直接存储器访问)。这三种方式和使用裸机或哪种操作系统无关,主要看串口设备硬件支持和业务需求。下面简单介绍这三种方式的特点:轮询方式轮询方式主要是每隔一段时间对各种设备进行轮询,查询设备有无处理要求,若有处理要求则进行相应处理。由此可见,若设备无处理要求,则 CPU 仍然会查询设备状态。而轮询的过程将会占据 CPU 的一部分处理时间,因此,程序轮询是...原创 2020-04-01 21:15:08 · 4247 阅读 · 0 评论 -
SylixOS应用层中访问串口设备
sylixos和其他Unix类操作系统一样,遵从一切皆文件的原则,会把各种设备抽象为设备文件。uart设备在sylixos下会抽象为一个tty字符设备文件,文件名型如: /dev/ttyS0。那么对uart设备的调用就是对文件/dev/ttyS0的访问,而对文件的访问就离不开io五件套open,close,read,write和ioctl。相比于其他文件,对ttyS0的操作主要是ioctl命令会有...原创 2020-02-09 11:39:44 · 934 阅读 · 0 评论
分享