Picproje Elektronik Sitesi

SERBEST BÖLGE => Programlama ve Algoritma => Konuyu başlatan: muhittin_kaplan - 07 Aralık 2013, 17:09:04

Başlık: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 17:09:04
Elimizde sayısı 127 adet olan (sayı 2 nin katları olabilir) slave cihaz var. bu cihazlar yazılım ve donanım olarak özdeş ve hiçbirinde adres namına bir numara id felan yok.
Bir adet de master cihaz var. hepsini aynı anda çalıştırıyoruz. master cihaz bunlara nasıl id verebilir ?
ardından  iletişime geçireceğim ve master hangi cihazdan bilginin geldiğini bilebilecek.
Başlık: Ynt: unique ID dağıtma
Gönderen: skara1214 - 07 Aralık 2013, 17:13:22
biraz zihni sinir bir fikir olarak dataların gelme süreleri olabilir.yani siz yolladınız cevap gelene kadar timer kurdunuz(yolladıgınız datada aynı oranda geç gideceği için *2 lik bir gecikme olabilir).yakından cevap en hızlı şekilde gelecektir.
Başlık: Ynt: unique ID dağıtma
Gönderen: F.T - 07 Aralık 2013, 17:56:16
Hocam hepsine beraber soru sorarsanız hepsi beraber cevap verme moduna girerse kimin ne dediği anlaşılamaz.   ;)
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 17:57:32
Hocam Orada Başladı Zaten Olayı Sorgulamam,
Cihazlara Master bir şekilde ID dağıtmalı
Başlık: Ynt: unique ID dağıtma
Gönderen: Klein - 07 Aralık 2013, 18:08:30
Alıntı yapılan: muhittin_kaplan - 07 Aralık 2013, 17:09:04
master hangi cihazdan bilginin geldiğini bilebilecek.
hangi cihazdan bilgi geldiğini bilebilecek ne demek?
Master tarafından veilen ID haricinde, cihazları tanımasını sağlayabilecek başka bir özellik mi var?
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 18:12:24
yok
Başlık: Ynt: unique ID dağıtma
Gönderen: Klein - 07 Aralık 2013, 18:21:50
STM32 kullanacaksan :
aygıtları birbirinden ayırmak için "Unique Device ID"  registerini kullanabilirsin. 

Master  kimler aktif diye mesaj  yayımlar.
Unique ID değerine göre her cihaz için bir gecikme değeri olur. gecikme süreleri arasındaki fark  1 byte gönderme süresinden kısa olmaz.
En küçük ID'ye sahip aygır hatta girip ID verisini yollar.  diğerleri hattan çıkar.
Master ilgili aygıta adres ID'si yollar. Bir dahaki sorguda bu aygıt hatta girmez.
tüm aygıtlar bitene kadar işlem sürer. 

Başlık: Ynt: unique ID dağıtma
Gönderen: islergucler - 07 Aralık 2013, 18:58:02
1 master 1 slave calıstırıp sırayla tüm cihazlara bir kere id dagıtırsın.
Başlık: Ynt: unique ID dağıtma
Gönderen: salih18200 - 07 Aralık 2013, 19:15:30
Bende bu tarz bir duruma şu şekil çözüm getirmiştim (kablosuz haberleşme). Cihazların hepsinin yazılımı aynı bunlara ID vermem gerekiyordu. Bir adet ID veren birim tasarladım. Cihazlar ilk çalışma anında ID almak için bu birime bağlanmaya çalışıyor. ID atanana kadar asıl görevlerini yerine getirmiyorlar. Elimde 100 adet ID atanacak cihaz olsun. Hepsinin  sıra ile enerjilendirerek ID'lerini ardışıl bir şekillde atıyorum. Aldıkları ID leri dahili roma kayıt ediyorlar ve bir dahaki çalışmada rom da ID leri olduğu için normal işlemlerine devam ediyorlar. Bu işlemi bir defaya mahsus ürünleri sahaya sürmeden önce montaj esnasında yapıyorum.
Başlık: Ynt: unique ID dağıtma
Gönderen: Burak B - 07 Aralık 2013, 19:23:47
   DHCP mantığı kullan. Tüm cihazlar aynı anda bile çalışsa hepsi ID alacaktır ve sorunsuz bir şekilde çalışırlar. Mantık basittir. Tüm cihazlar aktif olduklarında Masterdan bir ID isterler. Master ID tablosuna bakıp şunu istermisin diye sorar cihazda istemem demez. Kabul edilen ID tabloya yazılır ve tahsis bayrağı işaretlenir. ID sorgusu için başka yöntemlerde önerilebilir.
Başlık: Ynt: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 19:46:57
Alıntı yapılan: Klein - 07 Aralık 2013, 18:21:50
STM32 kullanacaksan :
aygıtları birbirinden ayırmak için "Unique Device ID"  registerini kullanabilirsin. 

Master  kimler aktif diye mesaj  yayımlar.
Unique ID değerine göre her cihaz için bir gecikme değeri olur. gecikme süreleri arasındaki fark  1 byte gönderme süresinden kısa olmaz.
En küçük ID'ye sahip aygır hatta girip ID verisini yollar.  diğerleri hattan çıkar.
Master ilgili aygıta adres ID'si yollar. Bir dahaki sorguda bu aygıt hatta girmez.
tüm aygıtlar bitene kadar işlem sürer.
uniq device id reg bilgiyi  id olarak kullansam.
Yazdigim prog. Bunu alir ve master a bilgiyle beraber yollar
Başlık: Ynt: unique ID dağıtma
Gönderen: Erhan YILMAZ - 07 Aralık 2013, 20:01:59
Anladığım kadarıyla burada asıl problem tüm slaveların aynı anda master ile haberleşmek istemesi durumu. Bu durumu önlemek için her cihaz başlangıçta 0-127 arası rastgele bir sayı üretip bu ürettiği değeri 1 mili saniye 100 mikro saniye 10 mikrso saniye veya herhangi bir zaman birimi ile çarpıp o kadar süre bekledikten sonra master ile iletişime geçebilir. Bekledikten sonra slave mastera "merhaba ben x. Daha iyi iletişim kurabilmemiz için bana ID verebilir misin?" Der Bu şekilde daha az çakışma olur ve kısa bir sürede tüm slavelar ID'sini almış olur diye düşünüyorum.
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 20:05:56
Erhan klein in dedigi mantikli. Zaten islemcimde bir uniq var onu kullanabilirim.
Denemesigimden bilmiyorum bu mcu icerisindeki id nin cakisma olasiligi nedir.
Ayrica erhan seninkide guzel fikir
Başlık: Ynt: unique ID dağıtma
Gönderen: Erhan YILMAZ - 07 Aralık 2013, 20:18:39
Alıntı yapılan: muhittin_kaplan - 07 Aralık 2013, 20:05:56
Erhan klein in dedigi mantikli. Zaten islemcimde bir uniq var onu kullanabilirim.
Denemesigimden bilmiyorum bu mcu icerisindeki id nin cakisma olasiligi nedir.
Ayrica erhan seninkide guzel fikir

ID çakışması için demedim abi zaten stlerde unıque yani benzersiz ID var yazıyor. ID açısından çakışma gibi birşey olmaz heralde. RF kısmında çakışma olması ihtimalini göz önüne alarak yazdım. Hepsi aynı frekansta ise aynı anda haberleşince sıkıntı olmaz mı?
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 20:31:29
Ayni freq olacak dogru. Mesaj cakismasini sen nasil engelleyeceksin. Mcu uniq id sadece hangi cihazin oldugunu verie..(benim dusuncem.rtc kullanarak zaman senkronu yapmak. Bu acidan baslangic icin senin dedigin yontem guzel)
Başlık: Ynt: unique ID dağıtma
Gönderen: X-Fi - 07 Aralık 2013, 20:49:02
Mbus protekolünü kullanın hocam hatta mümkünse fiziksel altyapısınıda kullanın(TSS721) 256 adet cihaz ile tek master'dan haberleşme kurabilirsiniz.
Başlık: Ynt: unique ID dağıtma
Gönderen: Erhan YILMAZ - 07 Aralık 2013, 20:56:37
Alıntı yapılan: muhittin_kaplan - 07 Aralık 2013, 20:31:29
Ayni freq olacak dogru. Mesaj cakismasini sen nasil engelleyeceksin. Mcu uniq id sadece hangi cihazin oldugunu verie..(benim dusuncem.rtc kullanarak zaman senkronu yapmak. Bu acidan baslangic icin senin dedigin yontem guzel)

Zaten bu yöntemi ID ataması yaparken rf haberleşmede çakışmayı minimize etmek için söylemiştim. ID'ler belirlendikten sonra zaten her cihaz ID'si oranında bekledikten iletişim kurabilir. Tabi bu yöntemler çakışmayı kesinlikle önler diye bir şey iddaa etmiyor. Sadece çakışma olasılığını minimuma(milyonda 1 falan) indirmeyi amaçlıyor.

Öte yandan rtc fikride mantıklı ama senkron saat sağlamak için gps saati kullanmak gerekir diye düşünüyorum. Geçen forumda bahsedilmişti almanlarında yerel bir saat sistemi varmış düşük frekansta yayın yapan oda kullanılabilir adı aklıma gelmedi. Saat sistemi olursa çakışma nerdeyse olmaz gibi birşey olur. 1 dakikayı baz alırsan her slave için 100ms ayırsan 600 slave sorunsuz haberleşebilir gibi görünüyor teorik olarak.
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 21:07:35
Cihazlarda gps de olacak. Ama rtc de kullanacagim. Ozel durumunda gps olmayabilir
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 07 Aralık 2013, 21:09:43
Bizim bir cihazimiz vardi zaman senkronu yapiyor duruma gore slave gonderiyordu. Zaman limitteyse gonderime basliyordu. Degilse devamli dinliyor limit icerisine almaya calisiyordu
Başlık: Ynt: unique ID dağıtma
Gönderen: Erhan YILMAZ - 07 Aralık 2013, 21:18:26
Bende bir cihazda görmüştüm raporlama falan yapıyordu. Saat sekron olayını gps ile çözdük dedilerdi.
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 09 Aralık 2013, 09:35:56
96 bitlik bir uniq id den bahsediliyor. adreside belli, belli değerleri aldım. ama hangisi nedir bilmiyorum. datasındada açıklama yok. sadece uniqid demiş. yani bunun şu bitleri aile şu bitleri versiyon şu biti şunlardan oluşur gibi bir bilgi mevcut mu ?
Başlık: Ynt: unique ID dağıtma
Gönderen: ErsinErce - 09 Aralık 2013, 09:45:11
geçenlerde bir sitede denk gelmiştim ama şimdi bulamıyorum

ilk 2 hane wafer no, sonraki 6 hane lot number, sonraki 2 hane waferdaki x pozisyonu, en son 2 hane de y pozisyonu diye hatırıyorum

device id yi içeren başka register olduğundan buraya dahil etmemişler
Başlık: Ynt: unique ID dağıtma
Gönderen: muhittin_kaplan - 14 Aralık 2013, 23:47:55
Hocam 96 bit baktım aradım bulamadım. örneğin okuduğum değerler kodu ile (a b c debugda gözlüyorum)

#include "stm32f4xx.h"

#define U_ID_0 (*(uint32_t*) 0x1FFF7A10)
#define U_ID_1 (*(uint32_t*) 0x1FFF7A14)
#define U_ID_2 (*(uint32_t*) 0x1FFF7A18)

int main(void)
{
SystemInit();
int a,b,c,D;
a=U_ID_0;
b=U_ID_1;
c=U_ID_2;





    while(1)
    {
    }
}


a:0x320030
b:0x31314714
c:0x31343533

bu kartın biri

a:0x3e0031
b:0x31314714
c:0x31343533

bu da kartın diğeri

bu bitler neler yoksa bildiğimiz gibi "birleştir bunları bunlar seri no" sumu


Başlık: Ynt: unique ID dağıtma
Gönderen: OG - 14 Aralık 2013, 23:52:22
Hocam ben o işi imalat anında seri no vermeden çözemedim.
Cihazda bir seri no olacak ki ona göre çağıracaksın. Sonra ister ona diğerleri ile sıralı bir ID atayacak ve ona göre çağıracak veya ister seri nosu ile çağıracaksın.

Ben bulamadım başka yontem.
Başlık: Ynt: unique ID dağıtma
Gönderen: salamon23 - 15 Mayıs 2014, 21:39:32
arkadaşlar merhaba,

pic içerisinde seri numarası yokmudur? slave cihazlarda bir buton yardımı ile pic'in seri numarası master cihaza yazdırılamaz mı?

Başlık: Ynt: unique ID dağıtma
Gönderen: Elektroemre - 16 Mayıs 2014, 11:39:10
STM32 UniqeID ile ilgili arkadaşlar bahsetmişler. Buna ek olarak ucuz bir çözüm lazım ise STM8S serilerinde de UniqeID mevcut.
Fiyatlarda <1$