数码之家

标题: 学习并行(Parallel)通信的两种协议,并实践点亮一个LCD(多图慎入) [打印本页]

作者: jf201006    时间: 2022-9-27 15:02
标题: 学习并行(Parallel)通信的两种协议,并实践点亮一个LCD(多图慎入)
本帖最后由 jf201006 于 2022-9-27 15:13 编辑

常用通信方式
嵌入式电子产品要交换其信息,它们必须共享公共通信协议。已经定义了上百种的通信协议来实现这种数据交换,主要的方式可以分为两类:并行或串行。
[attach]1615616[/attach]
主要内容:
一、什么是并行通信
二、两种常用(简单)的总线协议:68协议和80协议
三、两种总线的时序
四、并行通信的实践
(一)手持式POS
(二)LCDPIN
(三)使用并口点亮LCD
五、题外话,三种方式点亮LCD的对比

*********************************************************************
、什么是并行通信
并行是指多比特数据同时通过并行线进行传送,这样数据传送速度大大提高。
但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。
并行接口同时传输多个位。主控处理器的数据总线宽度决定了并行接口的宽度,它们通常需要数据总线(4位、8位、16位、32位或更多),以1和0的波形传输数据。
借用网上的图:使用9线的并行通信,由时钟控制的8位数据总线,每个时钟脉冲发送一个字节
[attach]1615628[/attach]
并行同行主要特点:
1.各数据位同时传输,传输速度快、效率高,多用在实时、快速的场合。
2.并行通信不能长距离通信,抗干扰能力差。
*********************************************************************
二、两种常用(简单)的总线
8080总线(接口),又叫Intel总线、80总线;
6800总线(接口),又叫moto总线、68总线。
1、8080起源
1974年,英特尔推出了 第二款8位的处理器Intel 8080,它是Intel 8008的后继产品,但是8080 还在其指令集中添加了一些 16 位操作,可以使用16位地址总线,使其能够访问64KB的内存,它的指令集比 8008 增强了不少。
由于8080的成功,为后面的处理器兼容性/扩展存储奠定了基础,也影响到了32/64位的X86架构处理器。
2、8080接口线
虽然8080微处理器已经被时代逐渐淘汰,但是由于8080的并行总线协议,在扩展方面及数据传输方面的优越性被保留了下来。很多追求高速,近距离的接口和传输方式依然使8080总线,比如CPU扩展外部的RAM和ROM,LCD、打印机等广泛使用。
CS(CE): 片选信号——(如果有多片可接译码器,通过地址进行访问)
3、8080接口线
WR(WE):写入数据控制信号——(连接MCU的RD或IOR)
RD(RE): 读取数据控制信号——(连接MCU的WR或IOW)
D[7:0]:8 位双向数据线——(连接MCU数据总线)
RST(RES):复位线——(连接系统总线RESET)
D/I(DC):命令/数据标志(0,读写命令;1,读写数据)
要注意的是WR和RD是低电平有效,就是说在平时是高电平,而且任何时刻不会同时为低。
8080方式下读数据操作的时候,我们有时候(例如读显存的时候)需要一个假读命 (Dummy Read),以使得微控制器的操作频率和显存的操作频率相匹配。在读取真正的数据之 前,由一个的假读的过程。这里的假读,其实就是第一个读到的字节丢弃不要,从第二个开始,才是我们真正要读的数据。
4、6800起源
M6800是摩托罗拉于1974年3月设计发布并首次制造的8 位微处理器,于当年年底全面投产。MC6800 微处理器是 M6800 微机系统的一部分,该系统还包括串行和并行接口IC、RAM、ROM和一些其他支持。一个重要的设计特点是,当大多数其他微处理器需要三个电压时,M6800 系列 IC 只需要一个 5V电源。
5、6800接口线
Reset(RES):复位线
CS: 片选信号
RS(D/I) :命令/数据标志
E:使能信号
R/W读写控制(1:读, 0:M写)
DB0~78 位双向数据线
RES、DB0~7、D/I、CS信号线与8080都一样,6800将WR、RD管脚变为了,E:允许信号(多片组合时,可有多条允许信号线),R/W读写控制(1:读,0:写)
6、8080和6800接口的区别
8080 是通过“读使能(RE)”“写使能(WE)”两条控制线进行读写操作;
6800 是通过“总使能(E)”“读写选择(W/R)”两条控制线进行读写操作。
以上是最明显的差异,当然还有一些小的差异等更多细节在配置的时候才会清楚。
[attach]1615621[/attach]
*********************************************************************
三、两种总线的时序
1、8080时序是在写入(WR)和读取(RD)信号的后沿(低电平有效时就是上升沿)处对数据信号进行采集的。
[attach]1615622[/attach]
[attach]1615623[/attach]
2、6800时序是在使能(E)信号的后沿(高电平有效就是下降沿)处对数据信号进行采集的。
[attach]1615624[/attach]
3、两种协议的比较
[attach]1615625[/attach]
[attach]1615626[/attach]
很简单,关键是确定什么时候将数据放到总线上,什么时候读取数据。不同的芯片稍有差异,可查手册参考。
*********************************************************************
四、并行通信的实践-点亮一个LCD
找到一个什么老的手持式POS机,型号是TANDEM-EM
(一)拆之
先三观:前后顶
[attach]1615635[/attach]

[attach]1615636[/attach]

使用锂电池供电
[attach]1615637[/attach]

拆开,看到主板
[attach]1615638[/attach]

拿下主板,后面是射频读卡部分和红外收发
[attach]1615639[/attach]

[attach]1615640[/attach]

射频卡读写使用mfrc531芯片
[attach]1615641[/attach]
[attach]1615642[/attach]

主板背面
[attach]1615643[/attach]

元件比较多
[attach]1615644[/attach]
非本帖的探讨内容,元件的PDF资料奉上,请小心避坑!!
[attach]1615649[/attach]
[attach]1615652[/attach]

主板正面有屏的接口,30PIN的。背光使用冷光
[attach]1615645[/attach]

正面元件比较少
[attach]1615646[/attach]
使用了INTEL的闪存和MOTOMCU

各种显示界面
[attach]1615647[/attach]

LCD主要分为两两个区,上面一条是状态区,下面是12864的显示区。
[attach]1615648[/attach]

(二)LCDPIN
1、从电路中确定LCD各脚功能
比较痛苦的跑电路,得到如下对应关系(有点小错误的)
[attach]1615654[/attach]
[attach]1615653[/attach]
由此可见是使用了并口通信,正好实践一下并口协议。
那么,这个LCD使用的80协议还是68协议?
按理说MCU使用的是MOTOMC68系列,应该使用6800协议。确认下吧。
先看一下FLASH的控制脚
[attach]1615655[/attach]
信号组合功能
[attach]1615656[/attach]
一切表明使用的是8080协议。TE28F160给出的写时序是
[attach]1615657[/attach]
并且还强调地址和数据在WE#CE#脉冲的上升沿锁存,以先发生者为准。
还是抓数据分析吧,反正点亮这个屏也要分析数据的。
找到板上的关键信号点位
[attach]1615658[/attach]
用以前的废板引出并口8位数据线的控制线
[attach]1615659[/attach]
由于是分析并口数据,板子上出来12根线,8通道的逻辑分析仪就不行了
[attach]1615660[/attach]
使用16通道的
[attach]1615661[/attach]
100M采样5秒的数据,CS为触发信号
[attach]1615662[/attach]
大概看一下,有写操作是在CS为高电平时发生的,因为LCD是挂总线上的,
在不对LCD操作时也会有数据,正常
[attach]1615663[/attach]
这里,对LCD操作,但WR为高电平,应该是OE为低电平所至
[attach]1615664[/attach]
准备解码,由于MCU使用了MC6800,先用6800协议试试
[attach]1615665[/attach]
WR作为6800R/WCS作为6800E,如下图
[attach]1615666[/attach]
可以看到,有竞争冒险的情况发生。
OE作为6800E,如下图
[attach]1615667[/attach]
读写动作发生时,CS为高电平,LCD没有选中。
8080协议试试
[attach]1615668[/attach]
可以看到,在CS为低电平(LCD被选中)期间,OE为高电平(不允许读出)WE有写的动作(下降沿),而且数据稳定。
数据与LCD常用指令对比
[attach]1615669[/attach]
应该是ST7565的主控。
[attach]1615670[/attach]
LCDPIN定义为:
[attach]1615671[/attach]
[attach]1615672[/attach]
2、数据分析
对于数据的采集采用的是分段导出的,因为LCD挂在总线上,只能是CSWR同时有效才是对LCD的操作。
有以下两种情况不能作为对LCD的操作:
一是LCD被选中(CS为低电平),但没有写动作(WR一直为高),这时使用WR后(上升)沿采数据。
[attach]1615673[/attach]
二是WR有写动作,但LCD没有选中(CS一直为高),这时使用CS后(上升)沿采数据。
[attach]1615674[/attach]
经过…………最终采集到的数据,并且根据A0信号区分出命令(蓝色)和数据(红色)。
[attach]1615675[/attach]
根据ST7565的规律,整理一下数据
[attach]1615676[/attach]
(三)使用并口点亮LCD
程序中端口使用情况
[attach]1615677[/attach]
LCD初始化
[attach]1615678[/attach]
利用原来飞线的接口顺利点亮
[attach]1615679[/attach]
[attach]1615680[/attach]
这个在拍照时,“页”不是很明显
[attach]1615681[/attach]
参考串行通信之SPI协议、IIC协议实践,点亮两个12864液晶屏/U”中有一张照片,很明显可以看到LCD页寻址的情况。
可能是使用并口速度快一些?
挂分析仪
[attach]1615682[/attach]
“写”频率大概20kHz
[attach]1615684[/attach]
原来设备的“写”频率达到了1MHz
[attach]1615685[/attach]
*********************************************************************
五、题外话,三种方式点亮LCD的对比
结合前面的帖子,分别使用了三种协议点亮三个LCD,简单对比一下:
三个LCD都是ST7565的主控,使用ARDUINO写程序,只有点亮LCD的语句,其中IICSPI使用了相应的库。
手机连拍,选变化的连续6张作动图。
IIC画面变化情况
[attach]1615686[/attach]
SPI画面变化情况
[attach]1615688[/attach]
并口画面变化情况
[attach]1615687[/attach]
逻辑分析仪中表现在出来的情况
IIC接口时,写入1页所用时长
[attach]1615689[/attach]
SPI接口时,写入1页所用时长
[attach]1615691[/attach]
并口时,写入1页所用时长
[attach]1615690[/attach]
这就能解释为什么有时拍照片时能拍到LCD按页寻址是画面了。

谢谢观赏!
提前祝各位朋友们国庆快乐!!



作者: 8139    时间: 2022-9-27 15:20
前排坐小板凳认真学习,坐等给jf加米青华。POS机用的还是现代的SDRAM,够老的,逻辑分析仪求包邮赠送,并倒贴199
作者: ljlj2001    时间: 2022-9-27 15:24
高手的贴就是不一样
作者: kgmx    时间: 2022-9-27 15:27
这技术厉害了,前排学习+1
作者: jf201006    时间: 2022-9-27 15:34
8139 发表于 2022-9-27 15:20
前排坐小板凳认真学习,坐等给jf加米青华。POS机用的还是现代的SDRAM,够老的,逻辑分析仪求包邮赠送,并倒 ...

8139是个好学生,这么快就学习了。
16通道的逻辑分析仪是为了分析这个屏专门借来的
作者: szb314    时间: 2022-9-27 16:06
8139 发表于 2022-9-27 15:20
前排坐小板凳认真学习,坐等给jf加米青华。POS机用的还是现代的SDRAM,够老的,逻辑分析仪求包邮赠送,并倒 ...

200凑个整数多好
作者: aacyxjz    时间: 2022-9-27 16:17
恭喜精华哈哈哈
作者: 8139    时间: 2022-9-27 16:23
jf201006 发表于 2022-9-27 15:34
8139是个好学生,这么快就学习了。
16通道的逻辑分析仪是为了分析这个屏专门借来的 ...

既然是借的就不要包邮赠送了,免得还不回去,以后jf买了逻辑分析仪再继续包邮赠送
作者: 8139    时间: 2022-9-27 16:25
szb314 发表于 2022-9-27 16:06
200凑个整数多好

论坛的qrut同学经常要求倒贴200,我要199是为了能先占据有利地形
作者: wfzdm    时间: 2022-9-27 16:37
长见识了,多谢lz分享
作者: gl542400    时间: 2022-9-27 16:43
这 是从无到有分析驱动屏 利害
作者: 石墨    时间: 2022-9-27 16:54
楼主果然是点屏大师
   
没有点不亮的屏
作者: autusun    时间: 2022-9-27 18:00
进来旁听大师的专家课。
作者: jf201006    时间: 2022-9-27 18:27
石墨 发表于 2022-9-27 16:54
楼主果然是点屏大师
   
没有点不亮的屏

拿一光板屏还真不一定能点亮。
作者: sumandigit    时间: 2022-9-27 20:49
学习下, 长见识了,多谢分享
作者: lmy2003    时间: 2022-9-27 21:42
谢谢分享,端小板凳来围观
作者: 暂停服务    时间: 2022-9-27 22:19
学习了,看的还不是太懂。
作者: yhf    时间: 2022-9-27 23:28
感谢分享科普知识
作者: wangxiangtan2    时间: 2022-9-28 00:20
牛逼了,太厉害了老哥
作者: win2003sp2    时间: 2022-9-28 00:41
谢谢分享,端小板凳来围观
作者: 15093396719    时间: 2022-9-28 03:54
非常不错的文章,问下,你的LCD常用指令对比表哪有下载,能否共享下。
作者: qrut    时间: 2022-9-28 06:51
教程般的详细了,老兄点屏玩的溜,这个帖子应该花了不少精力~
作者: qrut    时间: 2022-9-28 06:55
jf201006 发表于 2022-9-27 15:34
8139是个好学生,这么快就学习了。
16通道的逻辑分析仪是为了分析这个屏专门借来的 ...

我那个才苦逼的8通道,16通道排队求包邮倒贴200赠送~
作者: cj8510    时间: 2022-9-28 07:57
原来自学单片机的时候,LCD显示就没搞懂过
作者: hadesatan001    时间: 2022-9-28 08:11
楼主的逻辑分析仪软件是啥?
作者: hhxx    时间: 2022-9-28 09:11
这真是厉害啊厉害
作者: kkdkj    时间: 2022-9-28 09:26
非常好的帖子,可惜老眼昏花,看得头晕了
作者: wlhcq    时间: 2022-9-28 10:16
图文并茂,收藏学习!
作者: 佳维    时间: 2022-9-28 10:19
感谢大佬,绝对的教科书
作者: panxd    时间: 2022-9-28 11:19
大佬NB!!!感谢大佬分享!
作者: ljlun    时间: 2022-9-28 12:04
恭喜老友授精!

这段时间是一直都在折腾LCD屏驱动么
作者: jf201006    时间: 2022-9-28 12:21
15093396719 发表于 2022-9-28 03:54
非常不错的文章,问下,你的LCD常用指令对比表哪有下载,能否共享下。 ...

那是自己根据LCD的sheetdata整理出来的,各种LCD的指令有些基本指令是差不多的。
第一不全;第二有错,所以不敢共享
作者: jf201006    时间: 2022-9-28 12:23
qrut 发表于 2022-9-28 06:51
教程般的详细了,老兄点屏玩的溜,这个帖子应该花了不少精力~

老友来了
这个精力主要花在跑电路和整理数据上了,前前后后弄了两个星期
作者: jf201006    时间: 2022-9-28 12:24
qrut 发表于 2022-9-28 06:55
我那个才苦逼的8通道,16通道排队求包邮倒贴200赠送~

16通道确实用的机会很少
作者: jf201006    时间: 2022-9-28 12:26
hadesatan001 发表于 2022-9-28 08:11
楼主的逻辑分析仪软件是啥?

8通道的用的是Logic 1.2.17;16通道用的是DSView
作者: jf201006    时间: 2022-9-28 12:28
kkdkj 发表于 2022-9-28 09:26
非常好的帖子,可惜老眼昏花,看得头晕了

我也是老眼昏花,这么个东东搞了半个月
作者: 闪耀的空白    时间: 2022-9-28 13:27
厉害了,学习了,大佬就是不一样
作者: 轻烟    时间: 2022-9-28 13:38
谢谢分享,现在应该是串行通信的多
作者: jf201006    时间: 2022-9-28 15:06
ljlun 发表于 2022-9-28 12:04
恭喜老友授精!

这段时间是一直都在折腾LCD屏驱动么

复习几种通信协议,正好用LCD测试,比较直观,害怕以后又忘记了,所以有了这几个帖子
作者: sadfun    时间: 2022-9-28 15:39
厉害了~学习!
作者: wxhjsr    时间: 2022-9-28 15:47
膜拜了,不知道这些知识是要学习啥内容才能搞懂,我有几个pos机,都有类似的这种屏,因为我是门外汉,真不知道应该学习什么知识才能点亮,是要学习单片机吗?
作者: jf201006    时间: 2022-9-28 18:46
wxhjsr 发表于 2022-9-28 15:47
膜拜了,不知道这些知识是要学习啥内容才能搞懂,我有几个pos机,都有类似的这种屏,因为我是门外汉,真不 ...

肯定要学一种单片机的语言。
作者: gps42212    时间: 2022-9-28 20:36
感谢楼主系列的分享科普知识。
作者: Philips828    时间: 2022-9-28 21:32
我是一点不懂,居然看完了,在下佩服!
作者: 赵宇520    时间: 2022-9-29 06:18
分析透彻,谢谢楼主分享
作者: world_all    时间: 2022-9-29 08:54
逻辑仪不错,是啥牌子的?
作者: liubosen    时间: 2022-9-29 09:19
枉费我大学是通信专业的了,一个字不懂。楼主理论知识扎实,动手能手强大,已关注学习。
作者: fhm1    时间: 2022-9-29 09:20
大佬厉害,我是一点也看不懂也全部看了一遍
作者: yiguangqiang    时间: 2022-9-29 09:46
同款看不懂但是也看完了……
作者: solarshen666    时间: 2022-9-29 10:16
小白我看的云里雾里
作者: yhysyk    时间: 2022-9-29 10:39
长见识了,多谢分享,我就是来看看的!
作者: jf201006    时间: 2022-9-29 13:36
world_all 发表于 2022-9-29 08:54
逻辑仪不错,是啥牌子的?

梦源USB逻辑分析仪 DSLogic U3
作者: 15093396719    时间: 2022-9-29 14:24
jf201006 发表于 2022-9-28 12:21
那是自己根据LCD的sheetdata整理出来的,各种LCD的指令有些基本指令是差不多的。
第一不全;第二有错,所 ...

主要看看各种LCD指令有啥区别,对于新手帮助还是很大的。
作者: yujian8620    时间: 2022-9-29 14:27
这技术厉害了,前排学习+1
作者: tjzbf    时间: 2022-9-29 16:19
看不懂!
作者: fyzlzm    时间: 2022-9-29 17:53
这知识面太多了,一时学不会。太厉害了。
作者: tomyluo    时间: 2022-9-29 18:52
这年头并口通讯不多见了平时常见的主要是三大主流串口通讯协议:UART,I2C,SPI
作者: jsmlbl    时间: 2022-9-29 19:23
不行啊,感觉看不懂,硬件还是有难度啊!
作者: 王丁丁88    时间: 2022-9-29 22:35
学习了,虽然自己也能点亮一些屏幕,但是像这样自己去猜测管脚,去猜测协议,分析数据;却不是很多人能够轻松做下来的;非常感谢分享知识!谢谢
作者: dmhs31    时间: 2022-9-29 23:47
逻辑分析仪玩的真溜,学习学习
作者: china8359    时间: 2022-9-30 09:12
感谢分享!学习了
作者: cushion    时间: 2022-9-30 10:56
楼主V5
点屏(评)专家了啊
作者: 哇!良民    时间: 2022-9-30 12:13
多谢分享
作者: zoro    时间: 2022-9-30 20:06
高手就是高手,我受益匪浅。谢谢
作者: kaillera    时间: 2022-9-30 20:50
我是一点不懂,居然看完了,在下佩服!
作者: kaillera    时间: 2022-9-30 20:51
感谢分享科普知识
作者: 一半一半97    时间: 2022-9-30 22:45
涨知识了,之前学单片机觉得点屏幕好麻烦,程序里各种函数调用,看着看着就晕了。看楼主随手捡一个屏幕,就能逆向分析出接口协议,花式点亮,这也太厉害了。
作者: 不会闪现    时间: 2022-10-1 09:43
这些单片机或者c语言类编程,我看着就害怕,太恐怖了,以上学校时,我c语言补考了5次,都没过,最后是塞钱送礼才过的
作者: wqwq212    时间: 2022-10-2 18:33
虽然不是太懂,都是很喜欢这个,有时间了好好学习。
作者: blackbaby    时间: 2022-10-2 23:54
确认过眼神,看不懂。
作者: songlinhai    时间: 2022-10-3 21:21
我要好好学习,这也太复杂了!
作者: duxingkei    时间: 2022-10-4 09:11
逻辑分析仪是个好东西,就是最便宜的那个,现在都涨价到30多了
作者: stk    时间: 2022-10-4 14:12
楼主退休了吧,在数码之家从少年膜拜到中老年,大家向80进军。。
作者: kower    时间: 2022-10-4 19:22
wangxiangtan2 发表于 2022-9-28 00:20
牛逼了,太厉害了老哥


太厉害了楼主
作者: yule4040    时间: 2022-10-4 22:38
牛逼了,太厉害了老哥
作者: mydigit6    时间: 2022-10-5 14:19
wangxiangtan2 发表于 2022-9-28 00:20
牛逼了,太厉害了老哥

好专业的技术学习了
作者: laipihou    时间: 2022-10-7 17:23
楼主,到底是念并xing还是并hang?
作者: jf201006    时间: 2022-10-7 19:20
laipihou 发表于 2022-10-7 17:23
楼主,到底是念并xing还是并hang?

Parallel,并行(xing)
作者: laipihou    时间: 2022-10-8 08:21
我还以为是每次一整行(hang)的传输信息,应该念并hang
作者: jf201006    时间: 2022-10-8 13:42
laipihou 发表于 2022-10-8 08:21
我还以为是每次一整行(hang)的传输信息,应该念并hang

并行指的是输入数据的方式,8bⅰt一起传送。相对于串行1bⅰt而言的。
作者: bigfatfish    时间: 2022-10-8 16:46
讲得很清楚。感谢分享!
作者: 13570423796    时间: 2022-10-9 11:46
学习了,看的还不是太懂。
作者: loadbxh    时间: 2022-10-11 22:01
共享公共通信协议
作者: 火星南海    时间: 2022-10-11 22:28
知识又可以增加了
作者: hades15    时间: 2022-10-13 19:04
优秀,不错的知识点,学习收藏了
作者: 湫兮    时间: 2022-10-17 14:31
谢谢分享,好好学习一下。
作者: 南宁谢工    时间: 2022-10-22 17:23
进来看不懂,但是看完了,走了还是不懂。这不得弄个诺基亚黑白屏来测试一下。
作者: yeswei2008    时间: 2022-10-26 20:23
感谢分享科普知识
作者: shhu    时间: 2022-11-4 21:52
每天学习一点,以前看到8080不知道是什么意思,这下明白了
作者: vyvy2001    时间: 2022-11-24 20:53
大部分看不懂,我竟然还看完了~
作者: tsdj    时间: 2023-7-20 14:39
佩服的全体投地~厉害
作者: ctlu    时间: 2024-5-10 14:58
哪些波形、时序什么的,看不懂,佩服楼主!!!




欢迎光临 数码之家 (https://www.mydigit.cn/) Powered by Discuz! X3.4