Bit-banging
Bit-banging 是一种用软件替代专职硬件的串行通信的技术。软件直接对微处理器的管脚的状态进行设置和采样,其功能涵盖诸如:时 钟,电平,同步等所有参数。与此不同的是(传统的串行通信技术中),专职硬件诸如 modem、UART 或者 位移寄存器等一般是用来处理这些参数并且提供一个(缓存)的数据接口,软件在这种情况下同信号处理无关。实现 Bit-banging 技术的成本可以是很低的,比如利用 嵌入式系统。
尽管它同“骇客”有些关联,bit-banging 具有明显优点诸如:让相同的设备运行不同的协议而只需很小的(甚至不需)硬件的改动。借助很少的额外设备,我们也许可以从数字管脚(数字终端)可以得到视频信号。 bit-banging 也有一些明显的缺点。在软件仿真的过程中消耗的能量比同样功能的专职硬件大。微处理器过忙地从管脚采样和发送采样信号到管脚。在同等微处理器处理能力下, 系统常常会有些噪音。尽管如此,如果bit-banging 仅仅是相应硬件中断的例程的话,这些影响便微乎其微。 C 代码例程 // transmit byte serially, MSB first void send_8bit_serial_data(unsigned char data) { unsigned char i; // select device output_high(SD_CS); // send bits 7..0 for(i = 0; i < 8; i++) { // consider leftmost bit // set line high if bit is 1, low if bit is 0 if (data & 0x80) output_high(SD_DI); else output_low(SD_DI); // pulse clock to indicate that bit value should be read output_low(SD_CLK); output_high(SD_CLK); // shift byte left so next bit will be leftmost data <<= 1; } // deselect device output_low(SD_CS); }
转载于:https://blog.51cto.com/dongyulong/423511
Bit-banging相关推荐
- 影像锐化工具_如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费...
影像锐化工具 by Harshdeep S Jawanda 通过Harshdeep S Jawanda 如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费 (How and why you ...
- 软件工程与软件测试基础知识_这是我在软件工程工作九个月中学到的知识
软件工程与软件测试基础知识 I've been working for about nine months at Dexter as a software developer. I wrote a b ...
- im和音视频开发哪个更好_找时间成为更好的开发人员
im和音视频开发哪个更好 There's no time for anything. At least that's how it feels doesn't it? No time to learn ...
- 为什么要使用String.Equals over ==? [重复]
本文翻译自:Why would you use String.Equals over ==? [duplicate] This question already has an answer here: ...
- 关于org.apache.lucene.queryParser.ParseException: Encountered 解决方法
现象: org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" at line 1, col ...
- php pg connect,pg_connect
用户评论: [#1] Anonymous [2015-04-24 06:41:02] If you get the following warning : "Warning: pg_conn ...
- linux内核趣味,有关Linux 50个趣味名人名言
50. I develop for Linux for a living, I used to develop for DOS. Going from DOS to Linux is like tra ...
- 打字机已经被计算机所取代用英语,无法被电脑所取代的职业
无法被电脑所取代的职业 计算机和智能化设备的发展,让人们担忧今天的很多职业在未来将不复存在,如同曾经的打字机打字员一样.那么,有哪些职业是无法被电脑所取代的? 测试中可能遇到的词汇和知识: pedan ...
- ios PNG Crush error (PNG图片错误)
我是这么解决的: I had the same problem. How to fix : Open up image with Preview -> File > Export > ...
- powerpoint技巧_几乎每个PowerPoint都烂鸡蛋
powerpoint技巧 Almost 20 years ago - 2001! - Seth Godin wrote an ebook called Really Bad Powerpoint (a ...
最新文章
- 华为鸿蒙2.0打游戏,网友Mate X2升级鸿蒙2.0:部分游戏体验比EMUI更好 功耗却更低...
- CentOS6.2安装LAMP+DRUPAL网站(2)
- 成功解决This DCH driver package is not compatible with the currently installed version of Windows. This
- Java黑皮书课后题第6章:*6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数…例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序
- 关于Response.redirect和Response.End出现线程中止异常的处理
- 从事仪表专业学c语言有用吗,测控专业就业方向有哪些 就业前景比你想象中的好...
- 相机模型和双目立体匹配
- 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
- Problem E: 分数统计
- 蓝桥杯 基础练习 完美的代价
- Endianness
- extentreports报告插件与testng集成(二)
- 亚稳态到底是什么呢?
- 【追一科技】AAAI、ACL、EMNLP等顶会论文成果分享
- setuna快捷键_Setuna 办公截图神器
- 夏普电视出现android不动了,夏普电视常见故障问题分析与处理,电视机故障判断检修...
- latex ctexart中文空白模板 以及去除右上角页眉的方法【Latex入门学习】
- 区块链如何改变供应链金融
- 【九层之台】Web开发教程:1. 基础
- 2022年必须知道的数字化转型!
热门文章
- SSM框架影音娱乐电视剧网站-视频播放个性化推荐上传发布分享(idea开发javaweb-javaee-j2ee-springboot)
- html如何在每段话前加圆点,怎么修改html中列表项li所显示的圆点的颜色
- 谷歌如何通过安卓赚钱
- Java SSM毕设 中药店商城系统(含源码+论文)
- QCC51XX---Earbud启动流程分析
- SQL Server 入门
- 格言警句收集3-关于软件行业的思考
- 一步步带你编译哔哩哔哩ijkPlayer
- 如何关掉 PC QQ 烦人的 QQ 频道
- 【纯干货】用Python写30种小游戏给男朋友玩,谈恋爱我是认真的