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 ...
最新文章
- unsupported operand type(s) for + NoneType and int
- 苹果系统怎么降低版本_1903、1809...到底怎么看系统版本?
- bootstrap-按钮(按钮工具栏)
- Keepalived 使用指南
- 记一次Weblogic连接池泄露的修复过程
- 你真的知道怎么实现一个延迟队列吗 ?
- tcpsyn发生在哪层_必看面试题之计算机网络:来自一位拿到了腾讯和字节双offer的大佬...
- cannot find mysql.frm_mysql 问题 - Run佳的个人空间 - OSCHINA - 中文开源技术交流社区...
- 怎样更改itunes备份位置_iphone备份太大,严重挤占C盘空间,怎么把备份放在其他的硬盘?...
- 在网页上获取当前日期,数字时钟
- 网易云音乐API 分析
- 百度地图之离线下载功能
- 哥伦比亚大学 Schulzrinne 教授:撰写科研论文详细教程
- Jquery colorbox不错的遮罩
- 自定义tab(上面是图片 下面是文字)
- python英文文本分析和提取_英文文本挖掘预处理流程总结
- 分组加密中的四种模式(ECB、CBC、CFB、OFB)
- pythonselenium浏览器_python3的爬虫笔记11——Selenium和浏览器的一些设置
- python中replace()方法
- 笑话:​我是个程序员,一天我坐在路边一边喝水一边苦苦检查程序。这时一个乞丐在我边上坐下了,开始要饭,我觉得可怜,就给了他1块钱...