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

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

3天内不再提示

英创信息技术ESM6802 Android版支持双CAN通信简介

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-06 10:57 次阅读

2017年8月,英创在ESM6802 Android基础版之上,完善了对双CAN接口的支持。

CAN接口的工作思路大致如下图所示:

图1Android CAN应用流程介绍

由于Android NDK调用system()函数设置CAN接口不再有效,英创在开机运行了一个脚本服务canconfig,每隔1s种读一次系统属性:can0.baudrate和can1.baudrate,当读到属性值改变时,即调用ip命令设置启动can接口。JNI层调用property_set函数设置这两个属性,并对java层应用程序提供了native_canOpen、native_canRead、native_canWrite、native_canClose接口。而这四个接口函数以libCanControl.so文件提供给java层应用开发客户,英创将这四个接口作为静态方法封装成了一个Java类:emtronix.hardware.CanControl,用户只需要(且必须)通过调用CanControl类的这四个接口就可以完成CAN应用程序的开发。当然对于自己开发JNI层的客户,我们也提供libCanControl.so文件的C/C++源码做参考。这样,对于Android应用开发的客户来说,只需要专注于Java层的应用逻辑开发。

CanControl类的四个native函数简单介绍如下:

public class CanControl {

static {

System.loadLibrary("CanControl");

}

/**

* 打开CAN接口 ifname,波特率设置为baud,设置CAN socket,只接收id & filtermask == filterid的CAN帧

* @param ifname CAN接口名字,范围:can0/can1

* @param baud 波特率, 1000000,800000,500000,250000,125000,100000,60000,50000,20000,10000

* @param filterid 过滤ID,大于-1有效

* @param filtermask 过滤掩码

* @return 失败返回-1; 成功返回CAN socket描述符

*/

public native static int native_canOpen(String ifname, String baud,int filterid, int filtermask);

/**

*从can socket读取一帧数据,内部使用select阻塞监听可读操作,并设置超时时间

* @param fd can socket文件描述符

* @param frame 读取到数据帧

* @param sec 超时时间,单位s

* @return 失败返回-1;成功返回帧数据长度

*/

public native static int native_canRead(int fd, CanFrame frame, int sec);

/**

* 向can socket写函数

* @param fd can socket文件描述符

* @param data 写数据数组

* @param id 数据组成can帧的id号

* @return 失败返回-1;成功返回写的byte长度

*/

public native static int native_canWrite(int fd, byte[] data, int id);

/**

* 关闭can socket

* @param fd can socket文件描述符

* @return 失败返回-1;成功返回0

*/

public native static int native_canClose(int fd);

}

英创使用libCanControl.so封装的CanControl操作类,编写了一个简单的CAN通信测试APP:TestCanJni,支持标准帧/扩展帧、 HEX显示/发送,可设置一个过滤器。感兴趣的客户可以向英创工程师具体咨询。

图3CAN测试APP运行界面

图4支持HEX发送/显示

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

    关注

    7

    文章

    6089

    浏览量

    35711
  • 安卓
    +关注

    关注

    5

    文章

    2139

    浏览量

    57753
收藏 人收藏

    相关推荐

    龙芯中科荣获2024年度信息技术应用创新工作委员会卓越贡献成员单位

    近日,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称“信工委会”)在北京召开2024年度工作总结座谈会暨信“大比武”总结大会。中国工程院院士、信
    的头像 发表于 01-23 10:50 227次阅读

    芯盛智能荣获2024年信息技术应用创新工作委员会卓越贡献成员单位

    日前,中国电子工业标准化技术协会信息技术应用创新工作委员会(以下简称 “信工委会”)2024 年度总结座谈会于北京隆重举行。此次会议对在信工作中作出突出贡献的成员单位予以表彰。江苏
    的头像 发表于 01-20 09:56 211次阅读

    飞腾助力首届教育信息技术应用创新大赛圆满落幕

    近日,由中国教育技术协会主办,教育部教育管理信息中心教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信工委会
    的头像 发表于 12-24 09:57 243次阅读

    有方科技参编的信息技术团体标准发布

    近日,有方科技参编的《信息技术产品供应链成熟度 共性指标 第1部分:企业背景评价》《信息技术产品供应链成熟度 共性指标 第2部分:技术掌控评价》《信息技术产品供应链成熟度 共性指标 第
    的头像 发表于 12-23 10:44 303次阅读

    如何使用Arduino实现CAN总线通信

    的硬件模块实现CAN总线通信。 硬件需求 Arduino板 :任何支持Arduino IDE的板子都可以,例如Arduino Uno、Mega等。 CAN总线模块 :例如MCP2515
    的头像 发表于 12-23 09:06 700次阅读

    龙芯中科助力2024首届教育信息技术应用创新大赛成功举办

    近日,2024首届教育信息技术应用创新大赛在北京航空航天大学成功举办。本次大赛由中国教育技术协会主办,教育信实验室、公安部第三研究所、中国电子工业标准化技术协会信
    的头像 发表于 12-19 17:02 306次阅读

    新品发布 | TOSUN正式推出GPS转CAN FD模块产品,为自动驾驶提供数据支持

    正式推出一款GPS转CAN/CANFD模块产品,为自动驾驶提供数据支持。TOSUN01产品简介TM2101可将GPS、IMU信息转成CAN/
    的头像 发表于 12-02 01:01 193次阅读
    新品发布 | TOSUN正式推出GPS转<b class='flag-5'>CAN</b> FD模块产品,为自动驾驶提供数据<b class='flag-5'>支持</b>

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 589次阅读

    锐恩科技引领微控制器MCU技术创新,赋能多元化应用!

    支持多种通信接口,如IIC、UART等,以及2组低失调和高增益运算放大器和2组比较器,为各类复杂应用提供了强大的支持。 多样化的应用场景 锐恩的MCU产品凭借其卓越的性能和广泛的
    发表于 09-29 13:40

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

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

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

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

    集芯IP6802:至为芯设计的一站式无线充电soc解决方案应用芯片

    设计的无线充电解决方案采用了集芯的IP6802。作为该方案的核心部件,IP6802不仅拥有高效的无线充电功能,还具备了灵活的定制能力,能够根据客户的需求进行个性
    的头像 发表于 08-02 16:40 547次阅读
    <b class='flag-5'>英</b>集芯IP<b class='flag-5'>6802</b>:至为芯设计的一站式无线充电soc解决方案应用芯片

    can信息帧数据链路层组成部分及功能

    CAN协议概述 1.1 CAN协议的起源和发展 CAN协议最早由德国Bosch公司于1983年提出,旨在解决汽车电子系统中的通信问题。随着技术
    的头像 发表于 07-24 15:12 625次阅读

    超级快充,集芯 IP6566AC支持支持盲插快充 PD PPS SCP协议支持充Mate60

    超级快充,集芯 IP6566AC IP6566AA IP6566CC DC-DC支持支持盲插快充 PD PPS协议, SCP协议芯片支持
    发表于 07-10 10:20 4次下载

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

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