由于公司要做智能自助设备,因此需要在Android开发板上开发,记录一下经验

一、Android开发板应用

Android开发板应用:

  • 商业应用:机顶盒、广告机,自助机,售卖机,多媒体教学,人脸识别,医疗,智能家居等
  • 学习用途:Android与硬件之间的打交道(NDK开发)。某些开发板系统开源,这时候可以学习Framework层的开发,尝试自己编译系统,然后修改系统源码,再打包系统安装。(PS:学习用,可以买一些便宜点的开源系统的开发板)

二、开发时使用的开发板

1、开发时的Android开发板图示

(1)正面图:

在这里插入图片描述

(2)背面图:

在这里插入图片描述

(3)大概的实物图:

在这里插入图片描述

2、接口说明

(1)正面图上接口

  • DC 12V-IN:DC(Direct Current)是指直流电,与之相反AC(Alternating Current)是交流电;IN是入的意思,DC 12V-IN 就是接12V的直流电源。

  • HDMI:高清多媒体接口(视频和音频),一般与老版视频接口VGA、DVI、AV(差不多淘汰)比较。现在高清的视频接口除了HDMI还有DP、eDP。HDMI接口也有3种类型,一种是标准的HDMI,一种是Mini HDMI(迷你型,比标准的HDMI接口要小点),一种是Micro HDMI(微型,最小的一种HDMI接口)。

  • EMAC:A写错了,实际是EMMC,插EMMC内存卡。

  • Audio output/MIC In:音频输出/耳麦插口。

  • TF:TF内存卡。

  • USB-Host:使用Host模式的USB接口。

  • USB-ID:USB-OTG接口的引脚,USB-OTG接口根据USB-ID脚使用的是主机模式或者从机模式。

  • USB-OTG:使用OTG模式的USB接口。

(2)正面图右接口

  • MIC input:麦克风接口。

  • SPK:喇叭接口。

  • 3个USB-Host:使用Host模式的USB接口。

  • 2个UART接口:异步串行接口(串口)。

(3)正面图左接口

  • DC 12V-IN + STB:电源+开关控制脚接口。

  • EDP接口:Embedded Display Port,连接触摸屏或显示器的的视频信号接口。

  • LVDS-VCC:LVDS 电压跳帽接口。

  • RTC:实时时钟,一般会带有纽扣电池,当主电源断电或无法使用时,实时时钟可利用备用电源来继续计算时间。

  • LVDS-BL-VCC:LVDS 背光逆变器控制接口。

(4)正面图下接口

  • LVDS:液晶显示屏LVDS线接口,LVDS是低电压差分信号,由于在2V低压也能传输大量数据而低功耗,因此常用于手机/平板主板和手机/平板液晶屏的连接。

  • IR-INT:红外遥控学习检测功能接口,和LED+IR接口一对,都是红外功能。

  • KEY:外接控制接口,用来控制系统恢复出厂设置、系统开机、复位。

  • UBOOT:UBOOT系统引导,主要用来刷机升级系统。

  • LED + IR:LED是LED背光灯,IR全称infrared,是红外线接口,外置接红外接收器,如果是做机顶盒产品,需要接红外接收器,和红外遥控器交互。

  • PIR:人体红外传感器接口。

  • CTP:I2C CTP,I2C是同步串行总线,CTP是电容式触摸屏,I2C CTP采用I2C的电容式触摸屏接口。

  • GPIO 接口:General-Purpose Input /Output Ports,通用输入/输出端口的简称,用于电信号在电路中的输入输出,以方便控制电路部件。当微控制器或芯片组没有足够的I/O端口,或当系统需要采用远端串行通信或控制时,GPIO产品能够提供额外的控制和监视功能。

  • ANTENNA:antenna天线接口,主要是WIFI天线。

  • UART1-232/TTL CTS/RTS:串口。

(5)背面图接口

  • SIM:手机电话卡。

  • MIPI:MIPI摄像头接口。

  • 3G/4G PCI-E:3G/4G网络总线。

3、硬件规格

在这里插入图片描述

在这里插入图片描述

三、其它说明

1、 pin(PIN)

pin(PIN):接口针脚的意思,例如4pin,表示4个针脚的接头;8pin,表示8个针脚的接头。上面介绍的开发板多数是4pin的接口,少数是2pin和6pin的。

2、常见接口定义:

  • GND:地线(Ground),接黑色的线
  • RX:输出(Receive ),一般是接绿色或者蓝色的线
  • TX:输入(Transmit),接白色的线
  • VCC +3.3V或者 +3.3V:电源3.3V输出,接红色的线
    接法如图下:
    在这里插入图片描述

四、Android开发板开发主要使用的通信接口

Android开发板与外接硬件(如打印机、二维码扫码器、身份证读卡器等)主要使用到串口和USB接口进行通信。

1、串口

(1)串口和并口的区别

  • 并口:并行接口,指数据的各位同时进行传送,是采用并行通信方式的扩展接口,特点是传输速度快,但当传输距离较远、位数又多时,导致了通信线路复杂且成本提高;
  • 串口:串行接口(电脑上简称COM),是指数据一位位地顺序传送,是采用串行通信方式的扩展接口,其特点是通信线路简单,只要一对传输线就可以实现双向通信,并可以利用电话线,从而大大降低了成本,特别适用于远距离通信,但传送速度较慢。

(2)串口划分标准

  • 同步串行接口:SynchronousSerialInterface,简称SSI,采用同步通信的串行接口(带时钟同步信号传输,通讯收发双方是受同一个时钟源控制)
  • 异步串行接口:指通用异步收发器(Universal Asynchronous Receiver/Transmitter),简称UART,采用异步通讯(不带时钟同步信号,不是使用同一个时钟源),UART是一个并行输入成为串行输出的芯片,通常集成在主板上。

(3)串口的类型:

串口按电平标准(电信号分类):TTL、RS-232、RS-485

  • TTL:逻辑0对应0V,逻辑1对应3.3V或者5V,一般的电子设备用的多是TTL电平,因为能在第低压下工作
  • RS-232:逻辑0对应+3V–+15V,逻辑1对应-15V–5V
  • RS-485:逻辑0对应-6V—2V,逻辑1对应+2V–+6V

2、USB接口

(1)USB接口

USB:通用串行总线(Universal Serial Bus),一个外部总线标准,新兴的并逐渐取代其他接口标准的数据通信方式。

(2) USB和串口区别

  • USB也是用串行方式通信,但是USB的通信时序和信号电平都和串口完全不同,因此USB不属于串口。
  • USB支持热插拔,USB热插拔不容易坏;串口通常不支持热插拔,热插拔容易坏,串口一般是断电下插拔。
  • 传输速度不同,USB3.1最高传输速度为10G bit/s(位/s),而串口最高为115200 bit/s,USB传输速度远超串口。
  • 串口成本比USB要低,不需要专门开发和安卓驱动,又省了软件成本
  • 串口抗干扰能力比USB强很多,在同等高频干扰情况下,使用USB通讯的设备经常会死机卡住,但串口就不会。现在很多工业上还是会用COM口,就是这个原因

(3)USB设备

USB设备分为主机(HOST,主设备)和从机(SLAVE,从设备),可以理解为主人和随从的意思,主机和从机通过连接成功后,主机就能调用从机定义的接口功能来传输和获取数据,可以看成主人安排任务给随从,随从将任务结果报告给主人。

(4)USB接口的两种模式:

  • USB HOST接口:主机模式接口,如果Android主板的USB HOST接口插入鼠标设备,那么Android主板就是作为主机,鼠标作为从机(外设)。
  • USB OTG接口:既可以作为主机,也可以作为从机(外设)的模式接口,比如当Android主板的OTG接口线插到电脑上时,此时电脑作为主机,Android主板作为从机(外设),用作电脑读取Android主板的存储空间;当Android主板的OTG接口插上了U盘时,那么此时Android主板看作是主机,U盘是从机(外设),Android主板读取U盘的数据。有很多手机的充电接口(实际就是USB接口的一种)就支持OTG模式,既能连接电脑,也能接U盘。

五、Android开发板开发遇到的问题

1、瑞芯微RK3288 CPU在Android5.x系统上,插多个USB出现的问题。

  • 问题:如果在Android主板上插多个USB,那么前面的USB就不能正常通信,最后插的USB接口才能正常通信;就是插多个USB接口,前面USB的UsbDevice对象获取的UsbInterface都为空的,因此不能正常通信。

  • 解决方法:这个问题其实就是系统的bug,当时花了一大段时间和主板厂商负责人说是系统的bug,可是他就是不相信是bug(越说越气),直到出差到他们公司现场给升级系统到7.1才解决了问题。。

RK3288主板有点老了,如果还有人使用,有一样的问题,可以看下下面连接:
https://blog.csdn.net/ansondroider/article/details/69949298

2、Android主板和发卡机设备进行通信(UART),在调用某个接口会崩溃。

  • 问题:这其实是Android的兼容性问题,由于Android主板硬件设备尽不相同,因此很难做到兼容全部的。这个问题就是发卡机厂商给的.so库和公司的开发板不兼容的问题,因此可以寄开发板给他们重新调试,发卡机厂商那边说,为了兼容,已经弄了几十个不同的.so项目,这个问题说明Android在兼容性的确是比较麻烦。

  • 解决方法:寄开发板给设备厂商调试解决。


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐