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.
transparan mı olacak, yoksa gelen veriyi işleyecek misiniz?
Veriyi işlemeyecek.Verileri kuyruk yapıp ard arda gönderecek.
RX için ;Eğer gelen bilgisi kontrolu (kanallardar veriler aynı anda gelmeyecekse) ise VE kapısı kullanarak birleştirebilirsin..
TX zaten senin kontrolunda...
Veriler 1 sn de bir alınıyor.Fakat bilgiler aynı anda da gelebilir.
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...
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.
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.
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.
şunun gibi bir IC kullana. bilirsin. http://www.maximintegrated.com/datasheet/index.mvp/id/6560 (http://www.maximintegrated.com/datasheet/index.mvp/id/6560)
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
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.
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 (http://"http://www.m2m-platforms.com/seminars/2007seminar_material/Telit_CMUX_2_M2M_Platforms_seminar_2007.pdf")
Telit_CMUX_Implementation_User_Guide_r5.pdf (http://"http://www4.telit.com/module/infopool/download.php?id=616")
Protocol (http://"http://www.qtc.jp/3GPP/GSM/SMG_24/tdocs/P-97-1031.pdf")
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.
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 (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.
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ı.
Maksat işi kurtarmak :)
5 - 6 UART'lı bir işlemci bulamazsam bu yöntemi kullanmayı düşünüyorum.
Pic kullanacaksan
6 Uart lı MCU
PIC32MX534F064H
http://ww1.microchip.com/downloads/en/DeviceDoc/61156H.pdf (http://ww1.microchip.com/downloads/en/DeviceDoc/61156H.pdf)
beş tanesini birine aktarabilirsin.
5-6 uartlı işlemci bulabilirsiniz, piyasada mevcut. hatta http://www.microchip.com/maps/microcontroller.aspx (http://www.microchip.com/maps/microcontroller.aspx) burdan aratabilirsiniz, diger ureticilerinde boyle araclari mevcut. zamanlama sorunu olmayacaksa "rs232 multiplexer" kullanabilirsiniz. daha ucuza gelir.
Sistemin nasıl bilmiyorum. Rs485 ile parelel bağla. Bir ytönetici olsun diğerleri uydu. Yönetici kime sorarsa o dataları göndersin.
Gelen verilerin hepsi birbirinden bağımsız ve sadece Rx yapabiliyoruz.Yani master slave yapısını kullanamayız.