Coder Social home page Coder Social logo

freeuart's Introduction

FreeUart

100M baudrate Uart

高性能Uart需求分析

Uart优势分析

1.Uart之上的开发生态资源非常广泛,不仅在单片机嵌入式IOT领域应用丰富,而且也是PC机进入以上领域的敲门砖,几乎所有的PC端开发人员都必须熟悉Uart应用开发。

2.Uart相比较I2C,无需主控,可灵活自定义协议,可远距离组成环形通讯网络,I2C在实际组网时一般还需要中断线路来辅助完成通讯,否则通讯效率会非常底下,所以无法远距离组网,软件设计时如果没有中断辅助,则只能依靠轮询,这样极大的阻碍了应用设计能力以及系统容量。

3.Uart相比较SPI,无需主控,更加常见。

4.Uart相比较Ethernet,Ethernet只能星型布线,需要交换设备,且需要很深的操作系统协议栈支持,因此在嵌入式IOT领域不常用,成本较高,应用不能随意设计符合自己需要的轻量级第开销的应用协议,由于Ethernet是帧传输格式,最小帧换算下来有80多字节,相比较Uart最小传输单位为1字节,因此100M波特率的Uart在IO能力和IO延迟方面甚至可以比拟万兆Ethernet,而数据处理开销确低的多,因此有望用于IOT嵌入式领域,又能提供万兆NIC的IO体验。

Uart目前的局限,由于上位PC机操作系统理论以及技术限制(windows linux),IO提交完成能力最大一般只有10W左右,同步阻塞或者异步单IO的情况下仅仅只有1W左右,而Uart之上的应用协议一般都在10字节以下作为传输单位,因此PC端Uart只能稳定在1M以下波特率,且需要加硬件流控来防止由于OS的IO延迟(5ms以上)带来的硬件FIFO溢出,加硬件流控后将限制Uart的使用场景和范围。

异数OS在操作系统在基础理论方面获得突破,可以提供最大50M以上的IO提交完成能力,以及最小100ns以内的软件层IO延迟(PCIE设备一般需要3us的延迟),因此软件层面可提供最大500M波特率且不需要硬件流控,并且由于异数OS寄宿在windows linux下,因此可使用丰富的软件生态,同时又弥补了windows linux 实时应用能力的不足,提供了实时低延迟海量并发任务的应用设计能力。

硬件设计需求(由硬件实际需要定义可商议)

总体目标以及原则: 提供100M波特率Uart,以及最大1000W的单字节通讯响应能力,低波特率下需要兼容以往的Uart协议,需要能够组建环形网络,新的高速波特率可以考虑改变信号传输协议。

新的高速波特率可能实现的方式:

  1. 使用100M以太网差分线做传输介质,重新定义功能给Uart,提高FreeUart的市场适应能力。
  2. 硬件增加心跳帧,实现硬件主控模式,对于软件层面透明,用于晶振相位矫正同步,从而降低传统的Uart采样需求,实现4点甚至2点采样。

其他功能选项(不是必须):

  1. 心跳帧中增加链接认证能力,用于同步私钥,做简单的传输加解密。
  2. 通过硬件心跳帧实现自动波特率设置能力。

PC端异数OS对硬件的要求: PCIE方式,需要实现polling ring的数据传输模式,不生成中断,设备和OS都以一定的IO需求polling系统内存。

FreeUart目前的社区资源

FreeUart QQ群 456647065

异数OS QQ群 652455784

GitHub: https://github.com/yds086/HereticOS https://github.com/yds086/FreeUart

freeuart's People

Contributors

yds086 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.