5 Seri Portu 1 Seri Portta Birleştirme

Başlatan AST, 02 Nisan 2014, 17:38:56

AST

Selamlar,

5 kanaldan gelen seri bilgiyi birleştirip tek kanal üzerinden bu bilgiyi göndermem gerekiyor.Fakat nasıl yapılacağı hakkında fazla bilgim yok.
Sanırım DMA ve 6 seri portu olan bir işlemci kullanmam gerekiyor.Hızın pek bir önemi yok.Sadece bilgiyi kombine edip göndermek istiyorum.




furkan.seker

transparan mı olacak, yoksa gelen veriyi işleyecek misiniz?

AST

Veriyi işlemeyecek.Verileri kuyruk yapıp ard arda gönderecek.

Kabil ATICI

RX için ;Eğer gelen bilgisi kontrolu (kanallardar veriler aynı anda gelmeyecekse)  ise VE kapısı kullanarak birleştirebilirsin..
TX zaten senin kontrolunda...
ambar7

AST

Veriler 1 sn de bir alınıyor.Fakat bilgiler aynı anda da gelebilir.

SpeedyX

#5
6 UART şart gibi görünüyor yada uart chipleri vs...
GSM modüllerin kullandığı CMUX mantığını kullanabilirsin. Özel frame ile encapsulation yapılıyor.
Yada en basitinden stuffing yapabilirsin. <STX><CHno>....data....<ETX> ve STX ETX ve d27 geçen yerlerde <d27><chr+x> şeklinde stuffing işlemi...

Kabil ATICI

Her giriş için küçük bir işlemci kullanarak gelen bilgiyi burada depolar, sonra küçük işlemcilerden i2c gibi bir iletişim yöntemi ile ana işlemcine alabilirsin.
ambar7

haydarpasamikro

LPC810M021FN8 de 2 uart ve i2c var. DIP8 bacaklı. 3 tane lpc ile 6 uart giriş sağlanabilir. 1 lpc ise master olur. Herbirine bir i2c paket gönderip bufferlarındaki dataları varsa çekebilir. Master da uartı ile gönderir. Böylece iş çözülebilir.
Mikro Dünyası.Haydarpaşa Teknik ve Endüstri Meslek Lisesi Mikrodenetleyici Atl. Şefi

elektronart

baudrate ne kadar olacak? Eğer çok hızlı değilse çok bacaklı bir işlemci ile software uart kullanabilirsiniz. Bir hw bir sw uart birlikte kullanmıştım ama 6 taneyi denemedim.
6 kaynak sürekli olarak veri mi gönderiyor yoksa bir master düzenli olarak bunları kontrol mü ediyor. 6 kaynak ile çift yönlü iletişim oluyor mu yoksa tek yönlümü? Çift yönlü ise ve iletişimi master başlatıyorsa multiplexer da iş görebilir.
Açık Elektronik


camby

küçük bir CPLD iş görür

şöyle de olsun , böyle de olsun vs gibi dertler kalmaz.

İstediğin kadar senkron/asenkron giriş veya çıkış , istediğin kadar FIFO Buffer yaparsın

AST

Alıntı yapılan: SpeedyX - 02 Nisan 2014, 17:50:18
6 UART şart gibi görünüyor yada uart chipleri vs...
GSM modüllerin kullandığı CMUX mantığını kullanabilirsin. Özel frame ile encapsulation yapılıyor.
Yada en basitinden stuffing yapabilirsin. <STX><CHno>....data....<ETX> ve STX ETX ve d27 geçen yerlerde <d27><chr+x> şeklinde stuffing işlemi...

Hocam bu konular hakkında yeterli bilgi bulamadım, biraz detaylandırır mısınız.

Alıntı yapılan: ambar7 - 02 Nisan 2014, 18:22:40
Her giriş için küçük bir işlemci kullanarak gelen bilgiyi burada depolar, sonra küçük işlemcilerden i2c gibi bir iletişim yöntemi ile ana işlemcine alabilirsin.

Böyle bir sistem uygulanabilir.Eğer ATxmega16A4U (5 seri portu var) gibi işlemci tedarik edebilirsem bununla bir deneme yapacağım.

Öneriler için teşekkürler.

SpeedyX

Merhaba,

Bit Stuffing algorithm:
Alıntı YapThe scope of this algorithm is to hide each possible repetition of START and END byte into
the data frame.
The algorithm works in the following way:
If the START or END byte is present into the payload, the algorithm adds a special byte
(STUFF byte) into the stream before the "critical" byte and then it changes the "critical" byte
value adding 1 to the real value.
If the STUFF byte is present into the payload, the algorithm adds a STUFF byte before the
"critical" byte but it does not change the value of the "critical" byte.
Example:
Original DATA frame to send: |0x65|0x45|0x31|0x12|0x15|0xAB|0x33|0xEF|0x6F|
After bit stuffing: |0x65|0x45|0x31|0x12|0x15|0xEF|0xAC|0x33|0xEF |0xEF|0x6F|
Serial frame: |0xAB|0x65|0x45|0x31|0x12|0x15|0xEF|0xAC|0x33|0xEF |0xEF|0x6F|0xCD|

Alıntı YapThe new serial protocol is based on two very important bytes:
· START byte (hex value 0xAB)
· END byte (hex value 0xCD)
These two bytes define a serial frame; each serial frame has to begin with a START byte and
finishes with an END byte. Into the serial frame these two bytes have not to be present. In
order to avoid this possibility, a bit stuffing algorithm will be used, as explained in the
following chapter. For this reason, the STUFF byte (hex value 0xEF) will be used.
Typical serial frame:
| START | byte | byte | byte | byte | byte | byte | byte | ... | END |
Each kind of Mesh message (Hayes, Data, etc.) shall be encapsulated using these two bytes.

CMUX:
CMUX Serial Port Multiplexer
Telit_CMUX_Implementation_User_Guide_r5.pdf
Protocol


Eskiden FTDI chipleriyle 16 UART <-> 1 USB kart yapmıştım, bilgisayara bağlanacaksa öyle de yapılabilir.
En mantıklısı CPLD kullanmak, ikinci mantıklı olan tek işlemci(3+ uart) ile 4 uart fifo chip kullanmak (arkadaşların da dediği gibi).
2 İşlemci kullanılacaksa, 4 uartlı çok işlemci var, slave işlemcinin uartlarının hepsini SPI ile diğerine transfer edip, ana işlemcinin de uartlarını direkt kullanabilirsin.

mcn

Texas ın Tiva C serisi TM4C123 serisinden bir işlemci kullanabilirsin.

8 adet donanımsal UART.

http://www.ti.com/lsds/ti/microcontroller/tiva_arm_cortex/c_series/tm4c123x_series/overview.page

İçerisinde DMA dir vb herşey var. İstediğin gibi zamanlarsın sıralarsın vb.
www.teknikyazi.com --üşenme,erteleme,vazgeçme...

SERRO EFE

Adetli bi ürün olmayacaksa maksat işi kurtarmaksa veri paket boyutları çok büyük değilse(hızı etkilememesi adına) koy mini 6 işlemci bağla spi yada i2c ye yap birini master olsun sana 5 kanal seri port. Daha önce böyle birşey yapmıştım spi olanını.