0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术EM9280 Linux下AD驱动的应用介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-01-16 09:32 次阅读

1、Linux驱动程序调用方法概述

在Linux环境中,通过驱动程序来操作相应硬件接口,对于应用程序来说就是打开特定文件名称的文件,然后通过常规的对文件读写或控制的方法,来实现对硬件接口的访问。在嵌入式系统中,对硬件的读写通常采用ioctl函数的形式,其典型的流程如下:

流程 实现功能 实现函数 备注
第一步 打开文件 fd = open(devname, …); 特定设备文件名称
第二步 访问接口

rc = ioctl(fd, cmd, …);

rc = read(fd, buf, size);

rc = write(fd, buf, size);

可能调用多次,多种cmd
第三步 关闭文件 close(fd); 不再操作,则关闭

其中ioctl(…)的基本定义为:

int ioctl(int fd, int cmd, unsigned long arg);
输入参数 fd: 为打开文件获得的文件描述符
cmd: 操作命令码,在EM9280_drivers.h头文件中以定义
arg: 需要传递的参数指针,不同的命令必须严格匹配相应的参数类型
返回值 = 0: 调用成功
= EBADF: 非法文件描述符
= EFAULT: arg指向不可访问的内存空间
= EINVAL: 非法的cmd或arg参数
= ENOTTY: 文件描述符未指向特殊的字符设备

2、EM9280 AD驱动的应用

EM9280共有2路低速的模拟AD通道AIN1和AIN2,输入量程为0 – 3.6V,AD分辨率12-bit。所谓低速通道,表示这两个通道只能用于外部的直流或慢变化类型的信号。除此之外,EM9280还可提供对输入的+5V电源电压、+3.3V电源电压以及核心CPU基片温度的监测。

EM9280 AD驱动是以模块(module)形式提供给客户,相应的驱动文件放在根文件系统中:/lib/modules/2.6.35.3/em9280_ad.ko,EM9280 AD驱动所对应的设备文件名称为“/dev/em9280_ad”。

首先需要加载em9280_ad驱动:
#>insmod /lib/ modules/2.6.35.3/em9280_ad.ko

然后应用程序可打开AD驱动程序对应的设备文件“/dev/em9280_ad”,可多次调用read( )来读取各类数据。read( )函数需要带上如下结构数据:

struct daq_info
{
unsigned int cmd; // 命令码 = 0, 1, 2, ....
unsigned int data; // 返回的AD数据
char unit[16]; // 返回的单位字串: 'mV', 'Kalvin'等
} ;

其中cmd参数用于定义AD通道:
0 ---- AD采集通道1
1 ---- AD采集通道2
2 ---- +5V电源电压
3 ---- +3.3V电源电压
6 ---- 核心CPU基片温度

注意返回的温度参数均为开氏温度,转换成摄氏温度,大致减去273即可。在此基础上,应用程序的典型代码如下:

int main(int argc, char** argv)
{
int fd;
int i1, rc;
int nChIndex;
struct daq_info ad;
printf('Driver em9280_ad test v1.0\n');
nChIndex = 1;
if(argc > 1)
{
nChIndex = atoi( argv[1] );
}
fd = open('/dev/em9280_ad', O_RDWR);
printf('open file = %d\n', fd);
if( fd<0 )
{
return -1;
}
ad.cmd = nChIndex;
for( i1=0; i1<20; i1++)
{
rc = read(fd, (void*)&ad, sizeof(ad) );
printf( 'nValue = %d (%s)\n', ad.data, ad.unit );
sleep(1);
}
close(fd);
printf('close file\n');
return 0;
}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3525

    浏览量

    128876
  • Linux
    +关注

    关注

    87

    文章

    11138

    浏览量

    208154
收藏 人收藏

    评论

    相关推荐

    国产化背景的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 144次阅读

    加速鲲鹏落地!拓维信息迁移工具荣获鲲鹏原生开发技术认证

    认证。图/拓维·数据库适配中间件取得鲲鹏原生开发N认证在数字化时代的大潮中,信战略作为国家推动信息技术应用创新、保障信息安全与自主可控的关键举措,其重要性日益凸显
    的头像 发表于 09-10 08:03 283次阅读
    加速鲲鹏落地!拓维<b class='flag-5'>信息</b>信<b class='flag-5'>创</b>迁移工具荣获鲲鹏原生开发<b class='flag-5'>技术</b>认证

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 295次阅读

    linux驱动程序如何加载进内核

    ,需要了解Linux内核的基本概念和API。以下是一些关键概念: 1.1 内核模块:Linux内核模块是一种动态加载和卸载的代码,可以在不重新启动系统的情况加载和卸载。驱动程序通常以
    的头像 发表于 08-30 15:02 231次阅读

    中软国际信服务助力大连信产业发展

    为进一步激发大连本地信产业生态的活力与潜力,搭建一个高效、开放的交流平台。由大连软件行业协会携手大连市信息技术应用创新综合服务中心主办,中软国际协办的,2024年大连市信息技术应用创新产业发展大会
    的头像 发表于 08-27 16:49 691次阅读

    龙芯中科成功举办拉萨市信息技术创新应用工作交流会

    日前,由北京援藏指挥部指导,龙芯中科技术股份有限公司主办的“信息技术创新应用工作交流会——芯动百城西藏站”成功举办。北京援藏指挥部领导,西藏自治区经信厅、专通局、密码管理局等机关单位领导
    的头像 发表于 08-21 11:32 479次阅读

    龙芯中科突破“卡脖子”难题,构建新型信息技术体系

    胡伟武强调,在Wintel和AA体系主导全球电子产业的环境,中国需建立独立于X86和ARM的第三套信息技术体系和产业生态,解决关键技术被封锁的困境,加速形成新质生产力,从而创造新的竞争优势。
    的头像 发表于 05-20 16:12 464次阅读

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 698次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单

    RX78M组 EtherCAT ETG.5003示例程序固件信息技术

    电子发烧友网站提供《RX78M组 EtherCAT ETG.5003示例程序固件信息技术.pdf》资料免费下载
    发表于 02-21 14:22 1次下载
    RX78M组  EtherCAT ETG.5003示例程序固件<b class='flag-5'>信息技术</b>

    软通动力与捷技术签订战略合作协议

    近日,软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与宁波捷技术股份有限公司(以下简称“捷技术”)正式签订战略合作协议,并
    的头像 发表于 02-03 16:35 1025次阅读

    如何使用linuxgdb来调试python程序

    如何使用linuxgdb来调试python程序  在Linux,可以使用GDB(GNU调试器)来调试Python程序。GDB是一个强大的调试工具,可以帮助开发者诊断和修复程序中的错
    的头像 发表于 01-31 10:41 2081次阅读

    关于AD9280非线性的问题求解

    我有一块用ad9280做ad转换的板子,采用的是内部2V参考电压的设计,输入信号范围是0~2V。 然后我发现直流的时候有问题: Ain=1000mV的时候,输出0111_1111 Ain
    发表于 12-13 06:02

    阐述量子信息技术的研究现状与未来

    20世纪 80 年代, 科学家将量子力学应用到信息领域, 从而诞生了量子信息技术, 诸如量子计算机、量子密码、量子传感等. 这些技术的运行规律遵从量子力学, 因此不仅其原理是量子力学, 器件本身也
    发表于 11-22 11:40 707次阅读
    阐述量子<b class='flag-5'>信息技术</b>的研究现状与未来

    linux安装网卡驱动教程

    支持情况。一般来说,大部分常见的网卡型号都有对应的Linux驱动,可以在Linux官方的驱动支持列表中找到相关信息。如果你的网卡型号在列表中
    的头像 发表于 11-17 11:11 3501次阅读

    开鸿智谷受邀参加2023软件和信息技术服务业创新发展论坛

    10月18日,以“智荟雄安想未来”为主题的雄安新区2023软件和信息技术服务业创新发展论坛在雄安新区国际酒店会议中心召开。本次论坛以推动软件和信息技术服务业创新发展为目的,邀行政校企各级单位共商共建。开鸿智
    的头像 发表于 10-20 08:30 706次阅读
    开鸿智谷受邀参加2023软件和<b class='flag-5'>信息技术</b>服务业创新发展论坛