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相关推荐

  1. 影像锐化工具_如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费...

    影像锐化工具 by Harshdeep S Jawanda 通过Harshdeep S Jawanda 如何以及为什么要进行工具改造:花在锐化斧头上的时间永远不会浪费 (How and why you ...

  2. 软件工程与软件测试基础知识_这是我在软件工程工作九个月中学到的知识

    软件工程与软件测试基础知识 I've been working for about nine months at Dexter as a software developer. I wrote a b ...

  3. im和音视频开发哪个更好_找时间成为更好的开发人员

    im和音视频开发哪个更好 There's no time for anything. At least that's how it feels doesn't it? No time to learn ...

  4. 为什么要使用String.Equals over ==? [重复]

    本文翻译自:Why would you use String.Equals over ==? [duplicate] This question already has an answer here: ...

  5. 关于org.apache.lucene.queryParser.ParseException: Encountered 解决方法

    现象: org.apache.lucene.queryParser.ParseException: Encountered "<EOF>" at line 1, col ...

  6. php pg connect,pg_connect

    用户评论: [#1] Anonymous [2015-04-24 06:41:02] If you get the following warning : "Warning: pg_conn ...

  7. 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 ...

  8. 打字机已经被计算机所取代用英语,无法被电脑所取代的职业

    无法被电脑所取代的职业 计算机和智能化设备的发展,让人们担忧今天的很多职业在未来将不复存在,如同曾经的打字机打字员一样.那么,有哪些职业是无法被电脑所取代的? 测试中可能遇到的词汇和知识: pedan ...

  9. ios PNG Crush error (PNG图片错误)

    我是这么解决的: I had the same problem. How to fix : Open up image with Preview -> File > Export > ...

  10. powerpoint技巧_几乎每个PowerPoint都烂鸡蛋

    powerpoint技巧 Almost 20 years ago - 2001! - Seth Godin wrote an ebook called Really Bad Powerpoint (a ...

最新文章

  1. 华为鸿蒙2.0打游戏,网友Mate X2升级鸿蒙2.0:部分游戏体验比EMUI更好 功耗却更低...
  2. CentOS6.2安装LAMP+DRUPAL网站(2)
  3. 成功解决This DCH driver package is not compatible with the currently installed version of Windows. This
  4. Java黑皮书课后题第6章:*6.4(反序显示一个整数)使用下面的方法体编写方法,反序显示一个整数…例如reverse(3456)返回6543,编写一个测试程序,提示用户输入一个整数,然后显示它的反序
  5. 关于Response.redirect和Response.End出现线程中止异常的处理
  6. 从事仪表专业学c语言有用吗,测控专业就业方向有哪些 就业前景比你想象中的好...
  7. 相机模型和双目立体匹配
  8. 地铁人多不多可在线查询了 高德地图率先在北京上线新功能
  9. Problem E: 分数统计
  10. 蓝桥杯 基础练习 完美的代价
  11. Endianness
  12. extentreports报告插件与testng集成(二)
  13. 亚稳态到底是什么呢?
  14. 【追一科技】AAAI、ACL、EMNLP等顶会论文成果分享
  15. setuna快捷键_Setuna 办公截图神器
  16. 夏普电视出现android不动了,夏普电视常见故障问题分析与处理,电视机故障判断检修...
  17. latex ctexart中文空白模板 以及去除右上角页眉的方法【Latex入门学习】
  18. 区块链如何改变供应链金融
  19. 【九层之台】Web开发教程:1. 基础
  20. 2022年必须知道的数字化转型!

热门文章

  1. SSM框架影音娱乐电视剧网站-视频播放个性化推荐上传发布分享(idea开发javaweb-javaee-j2ee-springboot)
  2. html如何在每段话前加圆点,怎么修改html中列表项li所显示的圆点的颜色
  3. 谷歌如何通过安卓赚钱
  4. Java SSM毕设 中药店商城系统(含源码+论文)
  5. QCC51XX---Earbud启动流程分析
  6. SQL Server 入门
  7. 格言警句收集3-关于软件行业的思考
  8. 一步步带你编译哔哩哔哩ijkPlayer
  9. 如何关掉 PC QQ 烦人的 QQ 频道
  10. 【纯干货】用Python写30种小游戏给男朋友玩,谈恋爱我是认真的