CN115470161A - 一个多功能通信接口外设 - Google Patents
一个多功能通信接口外设 Download PDFInfo
- Publication number
- CN115470161A CN115470161A CN202110651817.5A CN202110651817A CN115470161A CN 115470161 A CN115470161 A CN 115470161A CN 202110651817 A CN202110651817 A CN 202110651817A CN 115470161 A CN115470161 A CN 115470161A
- Authority
- CN
- China
- Prior art keywords
- peripheral
- input
- read
- user
- check value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
一个多功能通信接口外设,特征为:支持多种通信协议,共享输入或输出缓存,支持外部通信管脚自定义,外设使用者可以按照地址访问缓存单元;外设向外设使用者提供输入缓存的读指针或写指针;外设向外设使用者提供输出缓存的读指针或写指针。外设自动计算校验值。
Description
技术领域
本发明涉及微控制器通信外设结构领域,尤其是多功能通信外设。
背景
在目前微处理器通信外设,一般一个外设只负责一种通信形式,对于多种类似通信功能由多种外设分别实现,本发明将类似通信外设整合为一个多功能外设,共享缓存,并通过指针访问,提高了效率和利用率。
发明内容
一个多功能通信接口,集成多种通信协议,包括但不限制为通用异步收发传输器(UART)、串行外设接口(SPI)、通用串行总线(USB)、控制器域网(CAN)。这些协议虽然不同,但是可以利用一个统一的通信端口兼容这些协议,并使用同一个存储作为数据的缓存。通过指针而非队列方式的缓存,拥有更多灵活性。
附图说明
图1是多功能通信接口基本结构图
具体实施方式
通常情况下,所公开的实施例在下面的说明中,给出了具体的细节,以便于透彻理解这些实施例。但是,本领域技术人员应当理解的是,这些实施例也可以不用这些具体细节来实现。尤其是关于指针具体数字和缓存器地址具体数字以及各个功能性部件,实施例中的方法只是为了说明意图而选用的特例技术,这些实施例可以选择其他公知方法。
第一实施例
图1说明多功能通信接口基本结构图,包含:
输入输出管脚阵列部件101;
输入控制器部件102;
输出控制器部件103;
输入缓存部件104;
输出缓存部件105;
读写接口控制器部件106;
该通信接口外设,在对外部的功能引脚例如串口UART的发送管脚TXD,接收管脚RXD,或者SPI总线的时钟管脚SCLK,输入输出管脚SOMI SIMO片选信号CS等全部进入输入输出管脚阵列部件101,在该部件,可以通过配置其寄存器的方式来选择每个管脚的具体功能,例如该部件有4个输入输出管脚分别为IO1、IO2、IO3、IO4,则这四个管脚可以配置为,IO1为TXD,IO2为RXD,也可以配置为IO3为TXD,IO4为RXD,或者配置为IO1为SCLK,IO2为MOSI,IO3为MISO,IO4为CS,还可以配置为IO1为CS,IO2为MOSI,IO3为MISO,IO4为CSLK。以上只是举例,还有更多情况和协议不再枚举。通过输入输出管脚阵列部件101的选择后,输入控制器部件102可以获得总线相应功能信号的情况,并按照具体协议情况将数据存储到输入缓存部件104。同时,输出控制器部件103也可以根据输出缓存部件105的存储情况,将相应功能信号通过输入输出管脚阵列部件101发送至总线。对于有些协议,例如CAN总线,输入控制器部件102也需要通过输入输出管脚阵列部件101发送相应信号到总线,输出控制器部件103也需要通过输入输出管脚阵列部件101了解总线相应信号的情况。读写接口控制器部件106是给类似于中央处理器(CPU)等外设使用者的访问通道。中央处理器通过这个通道可以读写输入缓存部件104和输出缓存部件105以及各个部件的配置寄存器和状态寄存器以及各种读写指针。
该通信接口外设在同一时间内只实现一个通信协议,输入缓存部件104和输出缓存部件105的存储空间都是被不同通信协议分时共享的。例如在某一时间段该接口作为串口UART使用时,这些缓存就是串口UART的输入输出缓存,当另一个时间段,该接口作为SPI使用时,这些缓存就是SPI的输入输出缓存,不同协议分时共享缓存单元,而不是每种协议都使用独立缓存,可以节省缓存容量。
此外,不同于一般接口外设的先入先出队列(FIFO)形式的缓存,该接口外设的缓存访问形式是按照地址访问,对应不同地址,访问不同缓存单元,但是同一个缓存单元不一定只有一个地址可以访问,同一个缓存单元可以被分配多个不同地址。例如地址0的低位可以访问缓存单元0,地址1的低位可以访问缓存单元1,地址2的低位可以访问缓存单元2,地址3的低位可以访问缓存单元3,但是地址4的低位也可以访问缓存单元0,地址4的高位也可以访问缓存单元1,这样对于地址4,只要要一次访问就可以同时访问缓存单元0和缓存单元1。而对于地址0则可以只访问缓存单元0而不影响其他缓存单元数据。这样通过不同地址的访问,可以兼具效率与灵活性。
对于输出控制器部件103,其内部有2个缓存指针,一个对应于外设使用者写入的缓存单元位置的写指针,一个对应已经发送的单元位置的读指针,通过对比这两个指针,输出控制器部件103可以知道其是否有数据需要发送,这两个指针的数值都可以被外设使用者读取或更新,读指针的更新或者自增减一般根据具体通信协议按照发送进度更新,也可以由外设使用者直接指定。写指针则可根据写入的数据量或者写入地址自动更新,也可以由外设使用者直接指定。
对于输入控制器部件102,其内部有1个对应已经接收的数据的缓存单元位置的写指针,该写指针的更新或者自增减一般根据具体通信协议按照接收进度更新但也可以被外设使用者直接指定。外设使用者自己维护读指针,这个读指针可以在输入控制器部件102内部也可以在输入控制器部件102外部,甚至整个外设的外部,通过对比这两个指针,外设使用者可以知道哪里有数据需要读取,并按需读取数据,由于是按地址读取,不是先入先出(FIFO)读取,所以同一个缓存数据可以多次读取。
对于某些通信协议,例如USB或者CAN总线,总线数据需要有校验值(例如CRC校验)。该通信接口外设可以内建校验值计算单元,自动计算发送数据的校验值并自动填充到发送数据流的合适位置,以降低外设使用者的工作量。但是外设使用者也可以自己计算校验值并命令输出控制器部件103直接原样发送。同理对于接收数据流,输入控制器部件102可以自动计算校验值并自动比较接收的校验值是否相同然后供外设使用者直接读取比较结果,也可以将自动计算的校验值和接收的校验值直接提供给外设使用者读取。外设也可以直接把收到的原始数据流原样存入缓存,供外设使用者直接读取。
针对第一实施例,举例说明串口USART工作方式如下:
处理器通过读写接口控制器部件106,写入控制字,将该通信接口外设设置为UART模式,还通过写入控制字配置输入输出管脚阵列部件101使UART信号线TXD为IO1、RXD为IO2。处理器通过读写接口控制器部件106,使用地址0写入发送数据到发送缓存单元0,输出控制器部件103内部的发送写指针加1,通过地址1写入发送数据到发送缓存单元1,输出控制器部件103内部的发送写指针再加1,同时输出控制器部件103内部的发送读指针与发送写指针的差距被输出控制器部件103发现,输出控制器部件103内部开始将缓存数据按照UART格式发送至输入输出管脚阵列部件101,输入输出管脚阵列部件101将数据发送至IO1,输出控制器部件103更新发送写指针,直至发送读写指针相同。同时,输入输出管脚阵列部件101将IO2上的RXD信号送给输入控制器部件102,输入控制器部件102按照UART格式写入接收数据到接收缓存0,处理器通过读写接口控制器部件106,读取输入控制器部件102的写指针,通过对比接收写指针和处理器自身保存的接收读指针,处理器发现有数据需要读取,根据读指针指示,处理器读取地址0获得接收缓存0的数据,然后更新自身保存的接收读指针。
针对第一实施例,举例说明SPI工作方式如下:
处理器通过读写接口控制器部件106,写入控制字,将该通信接口外设设置为SPI模式,还通过写入控制字配置输入输出管脚阵列部件101使SPI信号线CS的管脚为IO3,SCLK的管脚为IO1,MISO的管脚为IO2,MOSI的管脚为IO4。处理器通过读写接口控制器部件106,使用地址4写入发送数据到发送缓存单元0和缓存单元1,输出控制器部件103内部的发送写指针自行加2,同时输出控制器部件103内部的发送读指针与发送写指针的差距被输出控制器部件103发现,输出控制器部件103内部开始将缓存数据按照SPI格式发送至输入输出管脚阵列部件101,然后更新发送写指针,直至发送读写指针相同。同时,输入输出管脚阵列部件101将IO2管脚上的MISO信号送给输入控制器部件102,输入控制器部件102按照SPI格式写入接收数据到接收缓存0和接收缓存1,处理器通过读写接口控制器部件106,读取输入控制器部件102的写指针,通过对比接收写指针和处理器自身保存的接收读指针,处理器发现有数据需要读取,根据读指针指示,处理器读取地址4获得接收缓存0和接收缓存1的数据,然后更新自身保存的接收读指针。
针对第一实施例,举例说明CAN工作方式如下:
处理器通过读写接口控制器部件106,写入控制字,将该通信接口外设设置为CAN模式,还通过写入控制字配置输入输出管脚阵列部件101使CAN信号线TXD为IO3,RXD为IO4。处理器通过读写接口控制器部件106,使用地址6写入发送数据到发送缓存单元0至缓存单元3,输出控制器部件103内部的发送写指针不自动更新,处理器通过读写接口控制器部件106,写入输出控制器部件103内部的发送读指针为0,写入输出控制器部件103内部的发送写指针为4,写入输入控制器部件102内部的接收写指针为0,写入输入控制器部件102内部的接收读指针为0。同时输出控制器部件103内部的发送读指针与发送写指针的差距被输出控制器部件103发现,输出控制器部件103内部开始将缓存数据按照CAN格式发送至输入输出管脚阵列部件101,然后更新发送写指针,注意,输出控制器部件103不自动计算CRC校验值,只发送缓存的数据,因为数据已经包含CRC在内全部报文数据,直至发送读写指针相同。输入输出管脚阵列部件101将数据发送至配置好的具体管脚上。处理器可以实时读取输出控制器部件103内部的发送写指针,了解发送缓存使用状态从而继续写入发送数据而不造成发送缓存溢出或读空。同时,输入输出管脚阵列部件101将IO4上的RXD信号送给输入控制器部件102,输入控制器部件102按照CAN格式写入接收数据到接收缓存0和接收缓存1,处理器通过读写接口控制器部件106,读取输入控制器部件102的写指针和读指针,通过对比接收写指针和读指针,处理器发现有数据需要读取,根据读指针指示,处理器读取地址4获得接收缓存0和接收缓存1的数据,然后更新接收读指针。最后处理器通过读写接口控制器部件106,读取接收数据的CRC校验值与输入控制器部件102内部计算的CRC校验值,或者直接读取接收的CRC校验值与输入控制器部件102内部计算的CRC校验值是否相同的标志位值。如果在接收数据过程中,输入控制器部件102发现接收数据不符合CAN格式,也可以通过输入输出管脚阵列部件101发送错误帧打断CAN通信,这个过程可以无需处理干预自动完成,也可以在处理器指示下完成。输出控制器部件103在发送数据时也需要观察接收的数据以便随时停止或发送错误帧等协议要求的行为。
针对第一实施例,举例说明USB工作方式如下:
处理器通过读写接口控制器部件106,写入控制字,将该通信接口外设设置为USB模式,还通过写入控制字配置输入输出管脚阵列部件101使USB信号线DP为IO1,DN为IO3。处理器通过读写接口控制器部件106,使用地址6写入发送数据到发送缓存单元0至缓存单元3,输出控制器部件103内部的发送写指针不自动更新,处理器通过读写接口控制器部件106,写入输出控制器部件103内部的发送读指针为0,写入输出控制器部件103内部的发送写指针为4,写入输入控制器部件102内部的接收写指针为0。同时输出控制器部件103内部的发送读指针与发送写指针的差距被输出控制器部件103发现,输出控制器部件103内部开始将缓存数据按照USB格式发送至输入输出管脚阵列部件101,然后更新发送写指针,同时输出控制器部件103会自动计算并填充CRC校验值。输入输出管脚阵列部件101将数据发送至配置好的具体管脚上。同时,输入输出管脚阵列部件101将接收信号送给输入控制器部件102,输入控制器部件102按照USB格式写入接收数据到接收缓存0和接收缓存1,处理器通过读写接口控制器部件106,读取输入控制器部件102的写指针,通过对比接收写指针和处理器自身保存的接收读指针,处理器发现有数据需要读取,根据读指针指示,处理器读取地址4获得接收缓存0和接收缓存1的数据,然后更新接收读指针。最后处理器通过读写接口控制器部件106,读取接收数据的CRC校验值与输入控制器部件102内部计算的CRC校验值,或者直接读取接收的CRC校验值与输入控制器部件102内部计算的CRC校验值是否相同的标志位值,判断数据是否正确。
对所公开实施方式的先前的说明以使得任何所属技术领域的专业人员可以实施或者使用本发明。对本领域的技术人员而言可以很容易的对这些实施方式进行各种修改,并且在不脱离本发明的精神上、或者范围的情况下可以将在此定义的通用原理应用于其他实施方式。因此,并非意在将本发明限于在此显示的实施方式,而是应当同符合在此公开的原理和非常规设计的最宽范围相一致。
Claims (10)
1.一个多功能通信接口外设,特征为:支持多种通信协议,共享输入缓存或输出缓存。
2.如权利要求1所述方法,还包括:通信协议包括通用异步收发传输器(UART)、串行外设接口(SPI)、通用串行总线(USB)、控制器域网(CAN)。
3.如权利要求1至2所述方法,还包括:支持外部通信管脚自定义。
4.如权利要求1至3所述方法,还包括:外设使用者可以按照地址访问缓存单元;外设向外设使用者提供输入缓存的读指针或写指针;外设向外设使用者提供输出缓存的读指针或写指针。
5.如权利要求1至4所述方法,还包括:输入缓存或输出缓存的缓存单元有多于一个的访问地址。
6.如权利要求1至5所述方法,还包括:输入缓存或输出缓存的读指针或写指针可以针对不同的访问地址或输入输出状态而自增加或自减少也可以由外设使用者直接指定具体值。
7.如权利要求1至6所述方法,还包括:外设接收并缓存原始输入数据帧给外设使用者;外设缓存并发送外设使用者提供的原始数据帧。
8.如权利要求1至7所述方法,还包括:多功能通信接口外设按协议计算输入数据的校验值;外设计算的校验值和接收的校验值都可以被外设使用者读取;多功能通信接口外设直接向外设使用者提供计算校验值与接收校验值的比对结果。
9.如权利要求1至8所述方法,还包括:多功能通信接口外设计算输出数据的校验值并自动填充至发送数据的合适位置,无需外设使用者处理。
10.一种微处理器,处理器集成的多功能通信接口外设使用权利要求1-9中任一项方式工作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110651817.5A CN115470161A (zh) | 2021-06-11 | 2021-06-11 | 一个多功能通信接口外设 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110651817.5A CN115470161A (zh) | 2021-06-11 | 2021-06-11 | 一个多功能通信接口外设 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115470161A true CN115470161A (zh) | 2022-12-13 |
Family
ID=84364087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110651817.5A Pending CN115470161A (zh) | 2021-06-11 | 2021-06-11 | 一个多功能通信接口外设 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115470161A (zh) |
-
2021
- 2021-06-11 CN CN202110651817.5A patent/CN115470161A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114443529B (zh) | 内存直接访问架构、系统、方法、电子设备和介质 | |
KR101682980B1 (ko) | 시스템 온 칩에서의 대역폭 할당의 제어 | |
JP3403284B2 (ja) | 情報処理システム及びその制御方法 | |
JP5641754B2 (ja) | インターフェースカードシステム | |
EP0260693B1 (en) | Program mode access control system | |
US8001296B2 (en) | USB controller and buffer memory control method | |
EP2097828A2 (en) | Dmac to handle transfers of unknown lengths | |
US7908458B2 (en) | Ethernet controller | |
JP4323241B2 (ja) | バス帯域幅を増加させるためのメモリコントローラ、これを利用したデータ伝送方法及びこれを備えるコンピュータシステム | |
US20020199053A1 (en) | USB interface device of peripheral device | |
US7069352B2 (en) | Serial peripheral interface and related methods | |
CN115470161A (zh) | 一个多功能通信接口外设 | |
JP4404023B2 (ja) | データ転送制御装置及び電子機器 | |
US8996772B1 (en) | Host communication device and method with data transfer scheduler | |
US7451254B2 (en) | System and method for adaptive buffer allocation in a memory device interface | |
US7577560B2 (en) | Microcomputer logic development device | |
US20030229727A1 (en) | Method and apparatus of virtual COM port | |
US6944725B2 (en) | Reciprocally adjustable dual queue mechanism | |
JP4793798B2 (ja) | マイクロコンピュータ | |
KR100927130B1 (ko) | Pc와 임베디드 시스템 간의 고속 시리얼 통신 변환 장치 및 방법 | |
JP2009026165A (ja) | コントローラ、電子機器及び電子機器の制御方法 | |
KR20070081981A (ko) | 중앙처리 장치가 없는 시스템에서의 인터페이스 방법 및장치 | |
KR100369363B1 (ko) | 메모리를 이용한 호스트 시스템과 로컬 시스템 내부의마이크로컨트롤러 사이의 데이터 전송 및 수신 장치 | |
US7730233B2 (en) | Data transfer control device and electronic instrument | |
CN114546907A (zh) | 一种数据发送和接收方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |