Nu har jag jobbat på överförings drivrutiner och protokoll hantering i snart en vecka och de har gett resultat.
Dock blandat
Nu har jag verkligen fått upp hastigheten, högst blir det med en FTDI krets som mottagare.
just nu så loopas bara datan -> Rx & Tx sitter i hopp på FTDI/STM32
STM32 använder sin interna USB och så kopplar jag bara i hopp Rx->Tx buffer internt.
Start -> Timer Start
Jag genererar 10000 paket med data och lägger till CRC och stoppar dessa i en Kö, en egen tråd ligger och skickar dessa till chippet (STM32/FTDI).
Datan kommer tillbaka och CRC32 checkas, Data variabler separeras och stoppas in i en Kö med allt som skickats, dessa jobbar i varsina trådar.
Testprogrammet väntar tills sista paketet har mottagits och bearbetats -> timer stop
Paket ID finns med som sedan används för att fråga efter paketet som inte klarade CRC eller som saknas.
ACK hantering Timeout/omskick finns inbyggd.
Man kan skicka och ta i mot data i alla möjliga former.
PackageID, Command, Address, Data[]
Nu till resultat siffrorna
Mot FTDI som virutell comport.
Kod: Markera allt
Decoded done!!
time:2,9833045
KBits/s 638,632219741565
KBytes/s 79,8290274676956
Packages total 10000
Packages CRC OK 10000
Packages/s 3351,98770356831
Mot STM32F1 , ingen delay mellan varje Tx Data skick
Kod: Markera allt
Decoded done!!
time:5,1413464
KBits/s 352,079770874804
KBytes/s 44,0099713593505
Packages total 9503
Packages CRC OK 9503
Packages/s 1848,34851820138
Mot STM32F1 ,20ms delay mellan varje Tx Data skick (Data flöde ut är strypt)
Kod: Markera allt
Decoded done!!
time:66,7244972
KBits/s 28,2020203068686
KBytes/s 3,52525253835858
Packages total 9876
Packages CRC OK 9876
Packages/s 148,011606148154
Till FTDI chippet så får jag alltid 0% paket förlust, dock så får jag alltid paketförlust till STM32
om jag nu inte skickar riktigt långsamt, ska testa mera.
Men det ser verkligen lovande ut
Datamängden som överförings hastigheten räknas på är bara i Rx hållet, och all encoding och decoding av data samt CRC är medräknat,
så överförings hastigheten i bara data är säkert högre.